使用 passport 个人访问令牌如何刷新?

按照教程完成了使用 passport 处理第三方登录,但是刷新 token 不行,请问一下 这里个人授权令牌如何刷新 谢谢!

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
liyu001989
最佳答案

https://learnku.com/courses/laravel-advanc... 课程中有讲刷新token啊

6年前 评论
讨论数量: 10
liyu001989

https://learnku.com/courses/laravel-advanc... 课程中有讲刷新token啊

6年前 评论
dannyvan

@liyu001989 是教程11.4 后续怎么刷新

6年前 评论

@liyu001989

file

我用 passport 自带的路由 去执行刷新,试了很多次

6年前 评论
liyu001989

@江渚之上 @dannyvan 明白了,我看一下

6年前 评论
liyu001989

因为教程中有个小错误,

$this->getBearerTokenByUser($user, '1', false);

这里第二个参数需要使用字符串,这个值会被直接加密在token中,导致验证refresh_token 的时候报错了。改了应该就行了。

6年前 评论
dannyvan

@liyu001989 这里没有写刷新token的方法啊 前端获取到 accesstoken 和 refreshtoken 当accesstoken过期时,怎么利用refreshtoken 刷新呢

6年前 评论
liyu001989

@dannyvan
刷新token,就是用 refresh_token 换取一个新的 access_token 和 refresh_token,无论你的 token 是怎么获取的,当然就是那一个方法啊,上一节的内容。

一个渠道是正常的登录,一个渠道是通过第三方凭证获取。我这么说你能理解不?

6年前 评论
dannyvan

@liyu001989 理解是理解 但是我可能想的有点局限 $this->getBearerTokenByUser($user, '1', false); 这个方法是教程中的方法 返回了 两种token 当前台accesstoken过期的时候 我不知道怎么通过refreshtoken 刷新 因为没有方法是只传一个refureshtoken 来刷新的 。。我是新手,希望不吝赐教。谢谢。

6年前 评论
liyu001989

@dannyvan 3楼的截图里面不就是只穿了一个 refresh_token ? grant_type=refresh_token?

文档地址:https://learnku.com/docs/laravel/5.6/passp...

你的意思是 client_id 和client_secret 也不传?你使用的是 oauth 的密码模式,必须传啊

6年前 评论

Passport 个人访问令牌是没法刷新的 Passport OAuth 认证

个人访问令牌是永久有效的,就算使用了 tokensExpireIn 和 refreshTokensExpireIn 方法也不会修改它的生命周期。

个人访问令牌默认有效期一年,不过 overtrue 最近发现了一个非常简单的修改有效期的方法:博客:如何方便的修改 Laravel Passport Personal Access Token 的过期时间

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!