使用 Laravel/passport 如何设计带有第三方登陆的用户表?

  1. 在使用passport的过程中,遇到一个问题,密码授权方式下,token的获取只能通过请求/oauth/token这个接口吗?没有其他方式生成token嘛?
  2. 接问题1,在无法手动生成token(只能通过请求/oauth/token获取)的时候。APP端使用了第三方登陆(eg. QQ/微信/微博等)这样的话用的的信息(手机号密码啥的都是空),这样的话我应该如何生成token呢?
franktrue
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10

passport和第三方登陆是不同的步骤,两者不相关,为何有这个提问?

6年前 评论
franktrue

@waney 现在已经解决了,主要是之前做第三方登陆的时候,默认是没有password的。然后passport的密码验证模式是需要用户名和密码的,所以才会这么问,现在已经找到如何生成token的方法了。(之前生成token只能请求/oauth/token,现在知道如何手动生成了)

6年前 评论

@franktrue 请问如何手动生成? 求助?目前在这个问题卡了

5年前 评论
franktrue

@jeffrey_zou 根据第三方信息获得用户模型实例 $user,然后$user->createToken('Token Name');即可生成。
参考地址

5年前 评论

@franktrue 私人访问令牌总是一直有效的 被劫持了怎么办?

4年前 评论
franktrue

@江小白丶 私人令牌是可以设置有效期的,根据实际需要调整,而且可以添加授权规则

4年前 评论

@franktrue 根据描述,设置有效期是没有效果的,你那边确定可以设置有效期吗?

file

4年前 评论

对啊,使用passport的用户名密码生成系统用户,然后用第三方微信登陆的时候,如果该微信已经和我们的用户绑定了,怎么返回我们系统的accesstoken和refreshToken,用个人令牌不合适我认为

4年前 评论

如果使用 个人访问令牌 请问如何刷新 token

3年前 评论
zhangrongwang 3年前
xujinhuan (作者) 3年前
zhangrongwang 3年前
franktrue

@xujinhuan 我基本很少用到个人令牌刷新的场景,因为个人令牌场景有效期是1年,如果要刷新的话,建议从数据库层面操作

3年前 评论

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