php框架|Laravel
php
php框架-Laravel
本篇文章给大家带来的内容是关于Laravel使用JWT实现API用户授权的详细步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
人生日历源码,vscode默认预览md,ubuntu蓝牙联网,tomcat图片映射,js访问sqlite3速度,爬虫遇到的问题及其解决办法,php 浏览器语言,上海seo培训哪家好,网站模板内容怎么添加图片不显示,手机模板网站制作lzw
第一部分 安装JWT
第一步. 使用Composer安装 tymon/jwt-auth :
支付宝收款码合并源码,vscode打开网页报错,ubuntu选地区,支持tomcat的主机,网上爬虫搜索,php 数组sum,宁波seo在线优化哪家好,卖车系统网站源码,仿拼多多母婴商城手机网站模板下载lzw
`composer require tymon/jwt-auth 1.0.0-rc.3
企业级项目源码,如何改vscode图标,ubuntu 可玩性,项目不能加到tomcat,sqlite多节点数据同步,马上生产的孕妇梦见身上爬虫子,腾讯 php 招聘,济南论坛营销seo推广,网站图片生存代码大全,字体模板素材免费下载网站lzw
第二步. 添加服务提供商(Laravel5.4及以下版本,5.5及以上版本无需添加),
将下面这行添加至 config/app.php 文件 providers 数组中:
[ // other code Tymon\JWTAuth\Providers\LaravelServiceProvider::class,]
第三步. 发布配置文件,
运行如下命令发布 jwt-auth 的配置文件:
php artisan vendor:publish –provider=”Tymon\JWTAuth\Providers\LaravelServiceProvider”
第四步. 生成密钥,
此命令会在你的 .env 文件中新增一行 JWT_SECRET=secret。
php artisan jwt:secret
第二部分 开始配置
第五步. 配置 Auth guard,`
在 config/auth.php 文件中,你需要将 guards/driver 更新为 jwt,
只有在使用 Laravel 5.2 及以上版本的情况下才能使用。
[ guard => api, passwords => users,],// other codeguards => [ 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( egister, AuthController@register); Route::post(logout, AuthController@logout); Route::post( efresh, AuthController@refresh); Route::post(me, AuthController@me);});
middleware(auth:api, [except => [login, egister]]); } /*** 用户使用邮箱密码获取JWT Token.** @return \Illuminate\Http\JsonResponse*/ 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(), [ ame => equired, email=> equired|email, password => equired, c_password => equired|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 \Illuminate\Http\JsonResponse*/ public function me() { return response()->json(auth()->user()); } /*** 刷新Token.** @return \Illuminate\Http\JsonResponse*/ public function refresh() { return $this->respondWithToken(auth()->refresh()); } /*** Get the token array structure.** @param string $token** @return \Illuminate\Http\JsonResponse*/ protected function respondWithToken($token) { return response()->json([ access_token => $token, oken_type => earer, expires_in => auth()->factory()->getTTL() * 60 ]); }}
第九步. 使用Postman测试API:
测试API数据获取,需要在headers中添加Token; 格式
key=Authorization,value=Bearer空格token
Token刷新: