欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

oauth 授权以后是怎么设计的?

程序员文章站 2022-05-15 21:00:58
...
如题,通过 oauth 授权,获取到一些基本信息:用户名,用户头像,email

之后的设计是怎样的?

user 表中的密码字段已经设成不为空,而且用户名设为unique,不能直接将获得的信息直接存入,openid 表中的 user 外键也不好弄,另外,获得的用户头像是需要下载到本地吗谁能给个思路,Thank you

回复内容:

如题,通过 oauth 授权,获取到一些基本信息:用户名,用户头像,email

之后的设计是怎样的?

user 表中的密码字段已经设成不为空,而且用户名设为unique,不能直接将获得的信息直接存入,openid 表中的 user 外键也不好弄,另外,获得的用户头像是需要下载到本地吗谁能给个思路,Thank you

纠正下一班oauth授权以后获得想用户信息不叫用户名,对于本地系统而言更应该叫“昵称”

然后对于本地系统用的user表不应该造成影响,应该是作为user表的外表而存在的,类似下面

user表
user_id,username,password

user_openid表
user_openid_id,openid,openid_type,user_id,nickname,avatar,email

授权登录流程大概如下,具体需要根据产品业务逻辑来定,有很多设计方法

  1. QQ、微博、微信等等授权登录后获取的信息

  2. 判断openid在user_openid中是否存在,如果不存在先保存,如果存在判断有没有user_id,如果有就登录,如果没有就去完善user表需要的注册信息,类似注册并绑定第三方登录账号

  3. 一般情况下用户中心还会有地方可以绑定其他第三方账号,类似segmentfault

  4. 以上步骤完成就可以支持正常的用户名和密码登录以及所有第三方账号登录

  5. 另外建议根据业务逻辑考虑一些其他的细节场景

至于头像可存可不存,一般第三方账号提供的头像地址都不会过期,如果你的产品中碰到具体的问题可以再进行优化

相关标签: oauth oauth2 php