AuthApi.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Http\Api;
  3. use Illuminate\Support\Facades\Log;
  4. use Illuminate\Http\Request;
  5. use Firebase\JWT\JWT;
  6. use Firebase\JWT\Key;
  7. class AuthApi{
  8. public static function current(Request $request){
  9. if($request->hasHeader('Authorization')){
  10. $token = $request->header('Authorization');
  11. if(\substr($token,0,6) === 'Bearer'){
  12. $token = trim(substr($token,6));
  13. if($token === "null"){
  14. Log::error('token=null');
  15. return false;
  16. }
  17. $jwt = JWT::decode($token,new Key(env('APP_KEY'),'HS512'));
  18. if($jwt->exp < time()){
  19. Log::error('Expired');
  20. return false;
  21. }else{
  22. //有效的token
  23. return ['user_uid'=>$jwt->uid,'user_id'=>$jwt->id];
  24. }
  25. }else{
  26. return false;
  27. }
  28. }else if(isset($_COOKIE['user_uid'])){
  29. Log::error('no token');
  30. return ['user_uid'=>$_COOKIE['user_uid'],'user_id'=>$_COOKIE['user_id']];
  31. }else{
  32. Log::error('no token');
  33. return false;
  34. }
  35. }
  36. }