admin管理员组

文章数量:1533913

移动应用接入网页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/oauth2.0/authorize 用户登录成功后, 获取 Authorization Code 。
  • 后端请求 https://graph.qq/oauth2.0/token 通过Authorization Code获取Access Token 。
  • 后端请求 https://graph.qq/oauth2.0/me 获取用户OpenId, UnionId , 服务器比对 UnionId,判断登录还是注册。
  • webview 与 js 交互,传递 Access Token 和 OppenId ,正常登陆流程。

QQ互联 参考文档 :

http://wiki.connect.qq/
http://wiki.connect.qq/网站应用接入流程
http://wiki.connect.qq/使用authorization_code获取access_token

本文标签: 网页qq