AuthApi.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 getToken(Request $request){
  9. $token = false;
  10. if($request->hasHeader('Authorization')){
  11. $token = $request->header('Authorization');
  12. if(\substr($token,0,6) === 'Bearer'){
  13. $token = trim(substr($token,6));
  14. if($token === "null"){
  15. return false;
  16. }
  17. }
  18. }
  19. return $token;
  20. }
  21. public static function current(Request $request){
  22. if($request->hasHeader('Authorization')){
  23. $token = $request->header('Authorization');
  24. if(\substr($token,0,6) === 'Bearer'){
  25. $token = trim(substr($token,6));
  26. if($token === "null"){
  27. return false;
  28. }
  29. try{
  30. $jwt = JWT::decode($token,new Key(config('app.key'),'HS512'));
  31. }catch(\Exception $e){
  32. return false;
  33. }
  34. if($jwt->exp < time()){
  35. //过期
  36. return false;
  37. }else{
  38. //有效的token
  39. return ['user_uid'=>$jwt->uid,'user_id'=>$jwt->id];
  40. }
  41. }else{
  42. return false;
  43. }
  44. }else if(isset($_COOKIE['user_uid'])){
  45. return ['user_uid'=>$_COOKIE['user_uid'],'user_id'=>$_COOKIE['user_id']];
  46. }else{
  47. return false;
  48. }
  49. }
  50. }