LoginController.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Http\ApiControllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Http\Response;
  5. class LoginController
  6. {
  7. public function login(Request $request):Response
  8. {
  9. $user_name = $request->get('username','');
  10. $password = $request->get('password','');
  11. $user = Users::where(['username' => $user_name,'password' => $password])->first();
  12. if(!$user)
  13. {
  14. return response()->json('用戶名或密碼錯誤!');
  15. }
  16. unset($user['password']);
  17. //登录成功token
  18. $token = $this->getJWTToken($user);
  19. cache('user-'.$user['id'],$user);
  20. return response()->json(['token' => $token]);
  21. }
  22. public function getJWTToken($value)
  23. {
  24. $time = time();
  25. $payload = [
  26. 'iat' => $time,
  27. 'nbf' => $time,
  28. 'exp' => $time+7200,
  29. 'data' => [
  30. 'id' => $value['id'],
  31. 'username' => $value['user_name']
  32. ]
  33. ];
  34. $key = env('JWT_SECRET');
  35. $alg = 'HS256';
  36. $token = JWT::encode($payload,$key,$alg);
  37. return $token;
  38. }
  39. }