生活随笔
收集整理的这篇文章主要介绍了
JWT 添加用户名或邮箱 密码校验
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
JWT 用户名或邮箱 密码校验
参考 https://learnku.com/articles/6216/laravel-uses-jwt-to-implement-api-auth-to-build-user-authorization-interfaces#用户登录
在AuthController.php 中 添加
// 判断用户名是否是邮箱public function nameIsEmail(Request $request){if (strpos($request->post('email'), '@') > 0) {return true;}return false;}// 登录 接口public function login(Request $request){if ($this->nameIsEmail($request)) {$this->validate($request, ['email' => 'required|string|email:users,email','password' => 'required|string',]);}$this->validate($request, ['email' => 'required|string','password' => 'required|string',]);$credentials = $this->credentials($request);// JWTAuth::parseToken()->方法() 一般都可以换成 auth()->方法()if (!$token = auth('api')->attempt($credentials)) {return $this->ajaxFail(false, '邮箱或密码不正确', 401);}Log::info('用户-' . auth('api')->user()->name . '-' . auth('api')->id() . '登录了');return $this->respondWithToken($token);}/*** Get the needed authorization credentials from the request.** @param \Illuminate\Http\Request $request* @return array*/protected function credentials(Request $request){if ($this->nameIsEmail($request)) {return array('email' => $request->post('email'), // 注意下标为 email,对应数据表中的 email 字段'password' => $request->post('password'),);}return array('name' => $request->post('email'), // 注意下标为 name , 对应数据表中的 name 字段'password' => $request->post('password'),);}
总结
以上是生活随笔为你收集整理的JWT 添加用户名或邮箱 密码校验的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。