摘要:第二部分開始配置第五步配置,在文件中,你需要將更新為,只有在使用及以上版本的情況下才能使用。第六步更改,在上實(shí)現(xiàn)接口,實(shí)現(xiàn)兩個(gè)方法。
第一部分 安裝JWT
第一步. 使用Composer安裝 tymon/jwt-auth :
`composer require tymon/jwt-auth 1.0.0-rc.3
第二步. 添加服務(wù)提供商(Laravel5.4及以下版本,5.5及以上版本無需添加),
將下面這行添加至 config/app.php 文件 providers 數(shù)組中:
[ // other code TymonJWTAuthProvidersLaravelServiceProvider::class, ]
第三步. 發(fā)布配置文件,
運(yùn)行如下命令發(fā)布 jwt-auth 的配置文件:
php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
第四步. 生成密鑰,第二部分 開始配置
此命令會(huì)在你的 .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上實(shí)現(xiàn)TymonJWTAuthContractsJWTSubject接口,
實(shí)現(xiàn)getJWTIdentifier() and getJWTCustomClaims()兩個(gè)方法。
getKey(); } /** * Return a key value array, containing any custom claims to be added to the JWT. * * @return array */ public function getJWTCustomClaims() { return []; } }第三部分 快速創(chuàng)建DEMO測試
第七步. 添加一些基本身份驗(yàn)證路由:
"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"); });
第八步. 創(chuàng)建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); } /** * 注冊(cè)新用戶 */ public function register(Request $request) { // 數(shù)據(jù)校驗(yàn) // 數(shù)據(jù)驗(yàn)證 $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); } // 讀取參數(shù)并保存數(shù)據(jù) $input = $request->all(); $input["password"] = bcrypt($input["password"]); $user = User::create($input); // 創(chuàng)建Token并返回 return $user; } /** * 獲取經(jīng)過身份驗(yàn)證的用戶. * * @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數(shù)據(jù)獲取,需要在headers中添加Token; 格式
key=Authorization,value=Bearer空格tokenToken刷新:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29859.html
最近寫了一個(gè)node項(xiàng)目,主要使用到的技術(shù)有: koa2 // nodejs 框架 koa-router // koa路由 graphql // 查詢api typescript // 強(qiáng)類型語言 jwt // 授權(quán) typeorm // typescript的一個(gè)orm mysql2 // 內(nèi)容數(shù)據(jù)庫 mongodb // 日志存儲(chǔ)數(shù)據(jù)庫 redis // 服務(wù)器緩存 項(xiàng)目結(jié)構(gòu):sh...
摘要:默認(rèn)的時(shí)間為周。大概意思就是如果用戶有一個(gè),那么他可以帶著他的過來領(lǐng)取新的,直到周的時(shí)間后,他便無法繼續(xù)刷新了,需要重新登錄。指定在刷新令牌時(shí)要保留的聲明密鑰。為了使令牌無效,您必須啟用黑名單。指定用于對(duì)用戶進(jìn)行身份驗(yàn)證的提供程序。 showImg(https://segmentfault.com/img/remote/1460000012606251?w=1920&h=1280); ...
摘要:本文來自原文鏈接歡迎作客我們的學(xué)習(xí)群這個(gè)例子將引導(dǎo)你在中使用來創(chuàng)建用戶登錄和注冊(cè)的。是的簡稱,可以幫助我們創(chuàng)建用戶認(rèn)證,以此連接前后端。 本文來自pilishen.com----原文鏈接; 歡迎作客我們的php&Laravel學(xué)習(xí)群:109256050 這個(gè)例子將引導(dǎo)你在laravel中使用JWT來創(chuàng)建用戶登錄和注冊(cè)的API。JWT是Json Web Token的簡稱,可以幫助我們創(chuàng)建...
摘要:最近項(xiàng)目做認(rèn)證,最終技術(shù)選型決定使用,項(xiàng)目框架使用的是,使用有比較方便使用的開源包。使用安裝,使用的框架版本為,最新穩(wěn)定版本為。 最近項(xiàng)目做API認(rèn)證,最終技術(shù)選型決定使用JWT,項(xiàng)目框架使用的是laravel,laravel使用JWT有比較方便使用的開源包:jwt-auth。 使用composer安裝jwt-auth,laravel使用的框架版本為5.0,jwt-auth最新穩(wěn)定版本...
閱讀 3255·2021-11-18 10:02
閱讀 1960·2021-09-22 10:54
閱讀 2997·2019-08-30 15:43
閱讀 2588·2019-08-30 13:22
閱讀 1586·2019-08-29 13:57
閱讀 1055·2019-08-29 13:27
閱讀 746·2019-08-26 14:05
閱讀 2532·2019-08-26 13:30