laravel api接口+令牌认证登录


参考文档

dingo文档 https://learnku.com/docs/dingo-api/2.0.0/Authentication/1449
passport文档 https://learnku.com/docs/laravel/8.5/passport/10427

添加扩展

1.laravel项目跟目录执行 composer require dingo/api 开放api接口
2.执行 composer require laravel/passport=~9.0 弄令牌密码的(带上版本号,新版的还没研究懂)
10.4版的知道问题所在了,解决方法放在最下面
3.执行 php artisan migrate 生成令牌密码需要表
这一步如果出现秘钥长度问题则需要在AppServiceProvider加

Schema::defaultStringLength(191);

在这里插入图片描述

4.执行 php artisan passport:install 生成安全访问令牌(token)所需的加密键

以上步骤一套下来,可以看到项目中(这里用的是老图,passport应该用9.2版本)
在这里插入图片描述

在这里插入图片描述
都有了,才算成功

配置

接下来就是配置
项目根目录执行:php artisan vendor:publish --provider=“Dingo\Api\Provider\LaravelServiceProvider”
出现
在这里插入图片描述
.env里加
API_STANDARDS_TREE=prs
API_SUBTYPE=wlq
API_PREFIX=api
API_VERSION=v1
API_DEBUG=true //上线记得改为false laravel低版本如果是true的话阿里云会提示风险

config/auth里加
在这里插入图片描述
这里的注释去掉
在这里插入图片描述
Kernel里加上
在这里插入图片描述
routes/auth.php里
在这里插入图片描述

登录和注册代码

在这里插入图片描述

routes/api.php里
在这里插入图片描述

结果

然后走接口
在这里插入图片描述
有token就OK了
然后其他需要登录的接口带上这个token就可以了
前端是放在请求头里 参数Authorization: Bearer token
例如
在这里插入图片描述
postman请求
登录的时候
在这里插入图片描述
在这里插入图片描述

暂时就这么多吧,有漏掉啥以后在补

注意 laravel/passport 10.4的token生成方法生成出来的token是明文,是因为这个版本执行php artisan migrate命令的时候生成的user表里引用的扩展不对 (下面是10.4输出效果)
在这里插入图片描述
解决方法:
将 use Laravel\Sanctum\HasApiTokens;
替换为 use Laravel\Passport\HasApiTokens;
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值