laravel5.5安装jwt-auth 生成token令牌的示例

1:首先通过composer进行安装

composer require tymon/jwt-auth

2:添加服务提供者

编辑 config/app.php,在 "providers" 添加:

'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',

3:添加 Facades

编辑 config/app.php,在 "alias" 添加:

'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth',

'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory',

4:发布配置文件:

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

5:生成 secret key

: php artisan jwt:generate

安装完成后,执行 php artisan jwt:generate,会报错:

(1).Method Tymon\JWTAuth\Commands\JWTGenerateCommand::handle() does not exist

解决方法,这个需要修改源码:

编辑 vendor/tymon/jwt-auth/src/Commands/JWTGenerateCommand.php,新增:

 /**
 * Compatiblity with Laravel >= 5.5
*/
 public function handle()
 {
  $this->fire();
 }

(2)如果未添加服务提供者,直接执行该命令,可能也会报错!

There are no commands defined in the "jwt" namespace

解决方法:

就是上面的添加服务提供者

配置(Configuration)

secret(secret key) - 秘钥

用来签名 token 的秘钥。作者将秘钥与 Laravel 的 APP_KEY 分开,以便开发者可以独立地修改它们。

提供了一个 artisan 命令,为我们生成一个随机秘钥。(php artisan jwt:generate)

ttl(token time to live) - token 生存时间

token 的有效时间,以分钟为单位。建议尽可能设置短点,尤其是当我们也使用 token 刷新机制。

refresh_ttl(refresh time to live) - refresh 生存时间

可以刷新 token 的有效时间,以分钟为单位。例如,如果设置为 2周,那么只能在 2周 内,刷新对应的 token,否则将会抛出 TokenExpiredException 异常。如果超过了刷新的有效时间,必须生成一个全新的 token,这意味着用户需要重新登录。

注:ttl 和 refresh_ttl,用于保持用户的登录状态

algo(hashing algorithm) - hash 算法

用于签名 token 的算法,保留默认值即可

user(user model path) - 用户模型路径

应该指向我们项目的 User 类的命名空间路径

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4091.html