摘要:第二部分開始配置第五步配置,在文件中,你需要將更新為,只有在使用及以上版本的情況下才能使用。第六步更改,在上實現接口,實現兩個方法。
第一部分 安裝JWT
第一步. 使用Composer安裝 tymon/jwt-auth :
`composer require tymon/jwt-auth 1.0.0-rc.3
第二步. 添加服務提供商(Laravel5.4及以下版本,5.5及以上版本無需添加),
將下面這行添加至 config/app.php 文件 providers 數組中:
[ // other code TymonJWTAuthProvidersLaravelServiceProvider::class, ]
第三步. 發布配置文件,
運行如下命令發布 jwt-auth 的配置文件:
php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
第四步. 生成密鑰,第二部分 開始配置
此命令會在你的 .env 文件中新增一行 JWT_SECRET=secret。
php artisan jwt:secret
第五步. 配置 Auth guard,`
在 config/auth.php 文件中,你需要將 guards/driver 更新為 jwt,
只有在使用 Laravel 5.2 及以上版本的情況下才能使用。
[ "guard" => "api", "passwords" => "users", ], // other code "guards" => [ "api" => [ "driver" => "jwt", "provider" => "users", ], ],
第六步. 更改 User Model,
在User Model上實現TymonJWTAuthContractsJWTSubject接口,
實現getJWTIdentifier() and getJWTCustomClaims()兩個方法。
getKey(); } /** * Return a key value array, containing any custom claims to be added to the JWT. * * @return array */ public function getJWTCustomClaims() { return []; } }第三部分 快速創建DEMO測試
第七步. 添加一些基本身份驗證路由:
"api", "prefix" => "auth" ], function ($router) { Route::post("login", "AuthController@login"); Route::post("register", "AuthController@register"); Route::post("logout", "AuthController@logout"); Route::post("refresh", "AuthController@refresh"); Route::post("me", "AuthController@me"); });
第八步. 創建AuthController控制器 => php artisan make:controller AuthController:
middleware("auth:api", ["except" => ["login", "register"]]); } /** * 用戶使用郵箱密碼獲取JWT Token. * * @return IlluminateHttpJsonResponse */ public function login() { $credentials = request(["email", "password"]); if (! $token = auth()->attempt($credentials)) { return response()->json(["error" => "Unauthorized"], 401); } return $this->respondWithToken($token); } /** * 注冊新用戶 */ public function register(Request $request) { // 數據校驗 // 數據驗證 $validator = Validator::make($request->all(), [ "name" => "required", "email" => "required|email", "password" => "required", "c_password" => "required|same:password" ]); if ($validator->fails()) { return response()->json(["error"=>$validator->errors()], 401); } // 讀取參數并保存數據 $input = $request->all(); $input["password"] = bcrypt($input["password"]); $user = User::create($input); // 創建Token并返回 return $user; } /** * 獲取經過身份驗證的用戶. * * @return IlluminateHttpJsonResponse */ public function me() { return response()->json(auth()->user()); } /** * 刷新Token. * * @return IlluminateHttpJsonResponse */ public function refresh() { return $this->respondWithToken(auth()->refresh()); } /** * Get the token array structure. * * @param string $token * * @return IlluminateHttpJsonResponse */ protected function respondWithToken($token) { return response()->json([ "access_token" => $token, "token_type" => "bearer", "expires_in" => auth()->factory()->getTTL() * 60 ]); } }
第九步. 使用Postman測試API:
測試API數據獲取,需要在headers中添加Token; 格式
key=Authorization,value=Bearer空格tokenToken刷新:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29859.html
最近寫了一個node項目,主要使用到的技術有: koa2 // nodejs 框架 koa-router // koa路由 graphql // 查詢api typescript // 強類型語言 jwt // 授權 typeorm // typescript的一個orm mysql2 // 內容數據庫 mongodb // 日志存儲數據庫 redis // 服務器緩存 項目結構:sh...
摘要:默認的時間為周。大概意思就是如果用戶有一個,那么他可以帶著他的過來領取新的,直到周的時間后,他便無法繼續刷新了,需要重新登錄。指定在刷新令牌時要保留的聲明密鑰。為了使令牌無效,您必須啟用黑名單。指定用于對用戶進行身份驗證的提供程序。 showImg(https://segmentfault.com/img/remote/1460000012606251?w=1920&h=1280); ...
摘要:本文來自原文鏈接歡迎作客我們的學習群這個例子將引導你在中使用來創建用戶登錄和注冊的。是的簡稱,可以幫助我們創建用戶認證,以此連接前后端。 本文來自pilishen.com----原文鏈接; 歡迎作客我們的php&Laravel學習群:109256050 這個例子將引導你在laravel中使用JWT來創建用戶登錄和注冊的API。JWT是Json Web Token的簡稱,可以幫助我們創建...
摘要:最近項目做認證,最終技術選型決定使用,項目框架使用的是,使用有比較方便使用的開源包。使用安裝,使用的框架版本為,最新穩定版本為。 最近項目做API認證,最終技術選型決定使用JWT,項目框架使用的是laravel,laravel使用JWT有比較方便使用的開源包:jwt-auth。 使用composer安裝jwt-auth,laravel使用的框架版本為5.0,jwt-auth最新穩定版本...
閱讀 3234·2021-11-18 10:02
閱讀 1936·2021-09-22 10:54
閱讀 2989·2019-08-30 15:43
閱讀 2576·2019-08-30 13:22
閱讀 1575·2019-08-29 13:57
閱讀 1041·2019-08-29 13:27
閱讀 731·2019-08-26 14:05
閱讀 2512·2019-08-26 13:30