生活随笔
收集整理的這篇文章主要介紹了
JWT 添加用户名或邮箱 密码校验
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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'), // 注意下標(biāo)為 email,對應(yīng)數(shù)據(jù)表中的 email 字段'password' => $request->post('password'),);}return array('name' => $request->post('email'), // 注意下標(biāo)為 name , 對應(yīng)數(shù)據(jù)表中的 name 字段'password' => $request->post('password'),);}
總結(jié)
以上是生活随笔為你收集整理的JWT 添加用户名或邮箱 密码校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。