跳坑坑,实现laravel的jwt(详细):
首先坑的运行环境
看是nginx 还是apache nginx没有坑,
apache有
用户认证
JWT 完整使用详解:https://laravel-china.org/articles/10885/full-use-of-jwt
吃亏是福😝😜🤪😝
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On #开启rewriteEngine
#!-d的意思是不是目录或目录不存在
RewriteCond %{
REQUEST_FILENAME} !-d
#!-f的意思是不是文件或文件不存在
RewriteCond %{
REQUEST_FILENAME} !-f
#转给index.php处理
#^(.*)$-匹配所有的路径映射到入口文件 index.php/$1($1为变量1)
#[QSA]-表示保留参数如get传值?xxx==xx...;
#[PT]-再把这个URL交给Apache处理;
#[L]-这是最后一个匹配项,不再往下匹配
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
#增加如下内容
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
</IfModule>
————————————————
版权声明:本文为CSDN博主「Eleven 弦夜。」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43837229/article/details/101034248
请求时在请这里是列表文本求头上带上Authorization参数:
Authorization:Bearer your_token
但是在认证类中取不到该参数。 解决方法: 在.htaccess文件中加入
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
上流程
1.安装 jwt-auth
composer require tymon/jwt-auth:1.0.0-rc.2
2.输入以下命令,在config下增加一个jwt.php的配置文件
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
生成
3.安装完成后,需要设置一下 JWT 的 secret,这个 secret 很重要,用于最后的签名,更换这个secret 会导致之前生成的所有 token 无效
php artisan jwt:secret
4.修改 config/auth.php文件,将 api的 driver 改为 jwt
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider