大佬教程收集整理的这篇文章主要介绍了Securing a Laravel API in 20 minutes with JWTs,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
JWT相比Passport来说,轻便,@L_197_0@一样完备,性价比高。
参考JSON Web Token Authentication for Laravel & Lumen
先来安装jwt扩展包:
执行:
composer require tymon/jwt-auth
如果使用的Laravel是5.4及以下版本的;添加下面的代码 到config/app.PHP文件的providers配置数组中:
'providers' => [ ... Tymon\JWTAuth\Providers\LaravelserviceProvider::class, ]
安装完成,然后【Publish the config】发布配置:
执行:
PHP artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelserviceProvider"
现在生成了一个jwt.PHP文件在config文件夹下,可以用来对此扩展包进行基础配置。
打开文件,可以看到配置的值很多都是引用的.env文件中的配置。
比如:
最后,生成密钥:
执行:
PHP artisan jwt:secret
这个密钥将用于签名未来会用到的tokens。
接下来是User模型类:
模型类必须实现 use Tymon\JWTAuth\Contracts\JWTSubject;
实现这个接口的两个方法:
然后我们配置一下api访问的中间件设置
修改为:
'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], ... 'guards' => [ 'api' => [ 'driver' => 'jwt', 'provider' => 'users', ], ],
接下来我们新建一个LoginController,默认的LoginController待会就不用了,用这个新的来测试一下;
执行:
PHP artisan make:controller Api\Auth\LoginController
由于config/auth.PHP文件里有一个default配置是web:
就是说,默认情况下,走的是web配置里的,虽然可以用auth:api的方式使用api的配置,不过还有一种方法,就是修改Controller类的构造函数:
调用AuthManager中的setDefaultDriver方法:
接下来配置新建的这个LoginController:
以上是大佬教程为你收集整理的Securing a Laravel API in 20 minutes with JWTs全部内容,希望文章能够帮你解决Securing a Laravel API in 20 minutes with JWTs所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。