| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace App\Http\ApiControllers;
- use Illuminate\Foundation\Auth\User;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Hash;
- class LoginController
- {
- /**
- * JWT登录
- *
- * {message:'',status_code:200,code:null,data:'',errors:{}}
- *
- * @param Request $request
- * @return JsonResponse
- */
- public function login(Request $request):JsonResponse
- {
- $userName = $request->get('username','');
- $password = $request->get('password','');
- $user = User::query()->where("name",$userName)->first();
- $response = [
- 'message' => '请求成功',
- 'status_code' => 200,
- ];
- //验证用户登录
- if (!$user || !Hash::check(base64_decode($password),$user->password)){
- $response["message"] = "用户名或密码错误";
- $response["status_code"] = 401;
- return response()->json($response);
- }
- //获取公私钥
- try {
- $privateKey = file_get_contents(base_path().'/private.pem');
- }catch (\Exception $e){
- $response["status_code"] = 410;
- if (strpos($e->getMessage(),"No such file or directory")!==false)$response["message"] = "服务器异常,资源丢失";
- else $response["message"] = "访问某些资源失败";
- return response()->json($response);
- }
- try {
- $response["data"] = ["token"=>app("UserService")->getJWTToken($user,$privateKey)];
- app("UserService")->setOrRefreshCache($user);
- return response()->json($response);
- }catch (\Exception $e){
- $response["status_code"] = 409;
- $response["message"] = "资源异常,无法反馈";
- return response()->json($response);
- }
- }
- public function test()
- {
- return response()->json([
- "message" => "登陆成功",
- "status_code"=>200,
- "data"=>[
- "param" => \request("test"),
- "user" => Auth::id(),
- ],
- ]);
- }
- }
|