1. 安装jwt-auth
1 | $ composer require tymon/jwt-auth |
2. bootstrap文件修改(laravel 6.0 以下版本添加)
将以下代码片段添加到 bootstrap/app.php
修改程序部分的文件如下:
1 | // 取消注释这一行 |
然后在app\Http\Kernel.php
中取消对auth中间件的注释:
1 | $app->routeMiddleware([ |
3. 创建JWT密钥
1 | $ php artisan jwt:secret |
更新
.env
配置文件JWT_SECRET=foobar
4.更新User模型文件
首先,需要在用户模型上实现 Tymon\JWTAuth\Contracts\JWTSubject
契约,这需要实现两个方法 getJWTIdentifier
和 getJWTCustomClaims
1 |
|
5.配置Auth守卫
注意:只有在使用Laravel 5.2及以上版本时,这才有效。
修改 config/auth.php
使用 jwt
守卫
1 | 'defaults' => [ |
修改使用
api
做为默认守卫
6.添加基础验证路由
routes/api.php
添加验证路由:
1 | Route::group([ |
7.创建AuthController
1 | $ php artisan make:controller AuthController |
内容如下:
1 |
|
8.测试请求
post请求 http://example.dev/auth/login
参数:
1 | email:邮箱 |
响应:
1 | { |
验证请求:
1 | Authorization: Bearer eyJhbGciOiJIUzI1NiI... |
查询字符串参数:
1 | http://example.dev/me?token=eyJhbGciOiJIUzI1NiI... |