第三方登录的常规做法

网站准备接入第三方登录,比如qq.登录,但是遇到一些问题:

1 流程

网站登录页
点击qq 按钮跳到qq授权页,页面地址带有回调地址
用户同意并授权
qq 服务器调用回调地址,访问我们的服务器,并发送code
服务器根据code appid 等获取token
根据token 获得用户名
登录成功,服务器设置登录状态
浏览器刷新

问题是最后一步,浏览器怎么知道登录成功了?因为后继的操作都是服务端进行的。

2 申请接入入口
qq 有腾讯开放平台 qq 互联 到底哪里申请?
qq 互联对网站接入需填回地址,但开放平台不用。

3 多平台支持
后续我们的移动端也会接入,似乎申请入口,提交信息都不一样,为保证同一个用户用同样的帐号登录网站和移动端能识别为同一个人,需要union id,这个如何申请?

4 移动端登陆流程是怎样的?和网站一样吗?需要回调地址吗?

阅读 4.5k
2 个回答

1.首次qq登陆获取openid(union_id)后,需要用户输入密码用户名登陆一次,然后保存openid。以后每次第三方授权登陆中获取了open_id后就可以判断登陆了,拿openid到数据库查对应的用户,然后登录跳转。

2.qq的要申请qq互联的,微信是微信开放平台

3.union id需要把一个开发者账号下的所有app信息(app_id,key,应用名等)和开发者账号,公司名,公司营业执照,icp备案发生给connect@qq.com申请开通

4.移动端和pc的不一样,一般移动端要接入sdk,使用sdk来获取openid(unionid),例如友盟。

腾讯登录不是前端拿到code,用ajax发送登录请求给后台?后台拿到code去腾讯拿openId,然后帮我们登录,返回请求成功给前端,就是登录成功啦。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进