移动应用接入网页QQ登录

移动应用接入网页QQ登录

在以前应用接入 Android/IOS SDK 后, 如果用户手机没有安装客户端 , 可以直接使用网页授权登录.但是现在腾讯关闭了网页授权登录,转为提示用户.这样的体验很不好!

但是发现 QQ 音乐 、QQ视频 在没有安装客户端的情况下,依然可以进行 H5 登录 .(一度怀疑是亲儿子的待遇) 后来发现是网页应用授权登录.

开通网页登录比如要面临一个问题 , 网页授权登录和移动授权登录的 OpenId 不一致,服务端无法判定是否为同一用户.

腾讯的做法是不同应用登录 OpenId 不一样,但是 UnionId 一样. 之前客户端登录都是使用的 OpenId . 因此 服务端需要一个接口 , 跑数据库,在数据中新加一个字段, UnionId ,以后不再使用 OpenId ,而使用 UnionId 作为用户唯一标识.

整个申请流程花了很长时间 :

  1. 在腾讯互联注册网页应用 . 申请 网页应用 AppId 和 AppKey. (移动应用和网页应用必须在同一账号下).
  2. 联系 QQ 互联客服 , 询问通过 OppenId 获取用户 UnionId 的接口.(我是直接在QQ上联系客服后,客服给了我一个邮箱,你可以将你面临的问题通过邮件沟通具体流程).

移动应用使用网页登录简要流程 : (具体携带参数,请参考下方链接)
- 客服端访问一个服务器一个接口
- 服务器请求 https://graph.qq.com/oauth2.0/authorize 用户登录成功后, 获取 Authorization Code
- 服务器请求 https://graph.qq.com/oauth2.0/token 通过Authorization Code获取Access Token
- 服务器请求 https://graph.qq.com/oauth2.0/me 获取用户OpenId, UnionId , 服务器比对 UnionId,判断登录还是注册.
- webview 与 js 交互,传递 Access Token 和 OppenId ,正常登陆流程.

QQ互联 参考文档 :

http://wiki.connect.qq.com/
http://wiki.connect.qq.com/%E7%BD%91%E7%AB%99%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B
http://wiki.connect.qq.com/%E4%BD%BF%E7%94%A8authorization_code%E8%8E%B7%E5%8F%96access_token

猜你喜欢

转载自blog.csdn.net/stupid56862/article/details/79644762