第一种 当用户点击第三方登录的时候,进行鉴权,并在用户表创建一个用户,保存其头像,openid等 不过这种方式只适用于一种三方登录,如微信登录,当涉及到多种登录时这种方式不不适用了,比如我们有三种登录方式 微信,QQ,微博 如果用上面的方法,当用户第一次点微信登录时我们会在用户表创建一个用户,并且自增了一个用户id:1 当用户第二次选择QQ登录的时候,我们又会在用户表创建一个用户,其实这两个”用户“是同一个人,但此时数据库又会增加一个用户 自增id:2 当用户某天选择了微博登录,此时数据库又增加一个用户 自增id:3 这三个用户都是同一个人,那么问题来了,怎么把他们关联到一起?
是不是要选谁为主要的用户做载体,因为三个userid都是不一样的,他们关联(邮箱,手机号)不可能的,除非删除某两个
但有些用户只用qq和微博登录过,我想qq和微博关联到一起,我们没有办法,固定用户适用某个平台登录。
第二种 我们创建一个user_bind表 字段如下: id type:登录类型 openid user_id:绑定主表用户 nickname:昵称 avatarurl:头像 当用户进行第三方登录时,我们在user_bind里面创建记录
将user_id与用户表的id关联,通过这种方式即可实现多平台登录绑定。因为他们都可以绑定同一个user_id 如何实现关联? 当用户首次第三方登录时 在use_bind表创建一个第三方登录的用户,此时使user_id=0 当用户操作时,此时user主表是没有相关记录的 ,我们强制让用户绑定手机号码 因为user_id=0用户主表(user)没有记录,当用户绑定时,我们在user表创建一个用户并且拿到用户id并绑定到当前第三方登录(user_bind)中,当用户下次选择其他方式时我们再次提醒绑定当手机号,当手机号相同时我们还是写入相同的user_id这样即实现多种登录方式绑定。
第三方登录实现—->uni-app第三方登录实现