第三方授权登录正确的开发方式

第三方授权登录能够直接使用已有的QQ号、微信等登录。减少了注册环节,减少了因为注册而流失的用户。可以直接获取用户昵称、头像等信息,省去再次填写昵称、上传头像的麻烦。下面说说第三方授权登录正确的开发方式。


项目中涉及到3种授权登录形式,分别是微信、QQ和新浪微博。3种平台授权登录的流程大同小异,都是需要在其对应的开放网站上注册应用且产生appid及appsecert(或类似的其它叫法),并利用上述参数按照ahth2方式授权登录。授权的具体流程不是本文讨论的重点,在此略过。授权登录成功后获取到你的应用相对于授权平台的唯一标识(微信、QQ叫openid,新浪微博叫uid)。这时候你要注意了,如果你此时开发的应用场景为移动App应用,并且将来打算开发相应的网页版的项目(反之亦然),你不仅仅需要保存微信、QQ的openid。你还需要想办法获取联合id -unionid(姑且这样称呼它吧)。如何获取呢?下面我来分别说明下。

 微信

目前,微信的第三方授权登录是由微信开放平台来承载的。根据其最新的文档,用户通过微信授权登录同时用户授权了获取userinfo时,则授权成功后会出现unionid字段,即微信开放平台会同时返回用户的openid和unionid(移动应用微信登录开发指南)。开发者只需要将openid和unionid都保存到数据库即可。

 QQ

QQ授权登录平台要想保存unionid可能要稍微麻烦一点。需要联系QQ客服申请获取unionid的全限。详见常见问题 - 文档资料--QQ互联的问题1。按照其要求发送邮件申请unionid的访问权限即可。正常情况下QQ客服会很快开通权限并回复开发者的申请邮件,并在邮件中比较详细的说明调用接口获取unionid的方式。

 新浪微博

还是新浪大大好,新浪微博的移动App和网页版的唯一标识都是统一的uid,无需做额外的操作。


上面说了这么多,现在来说明下为什么要这么做。已经保存了openid,为什么还要保存unionid呢?其实可能有些读者已经发现了一些端倪。因为在微信、QQ这两个平台注册应用,移动端App和网页版应用会生成不同的appid,而不同的appid相对应的就是不同的openid。如果不保存unionid,就会出现,同一个微信账号(或QQ号)登录开发者的网页版和移动端App会生成两个不同的第三方账号的尴尬。如果开发者没有意识到本文所说的问题,且已经将服务部署到开发环境了,且又有开发其他终端授权登录的需求,该如何是好?本人将在下篇文章“第三方授权登录踩过的坑”中解答。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 GitHub 第三方登录接入到你的应用程序中,你可以按照以下步骤进行操作: 1. 创建一个 GitHub 开发者帐户:在 GitHub 上创建一个帐户(如果你还没有)。然后登录到你的帐户并导航到开发者设置页面。 2. 创建一个新的 OAuth 应用程序:在开发者设置页面中,点击 "New OAuth App" 按钮创建一个新的应用程序。填写应用程序的名称、主页 URL(可以是你的应用程序网站)、回调 URL(GitHub 会将用户重定向到此 URL),并选择适当的权限范围。 3. 获取应用程序的客户端 ID 和客户端密钥:创建应用程序后,你将获得一个客户端 ID 和一个客户端密钥。这些信息将在后续步骤中使用。 4. 在你的应用程序中实现登录功能:根据你所使用的编程语言和框架,找到适当的库或插件来帮助你实现 GitHub 第三方登录功能。不同语言和框架可能有不同的实现方式,你可以参考 GitHub 的官方文档或搜索相关示例代码。 5. 配置登录回调处理:当用户使用 GitHub 登录成功后,GitHub 会将用户重定向到你在步骤 2 中设置的回调 URL。在你的应用程序中,需要处理这个回调请求,并从中提取授权码或访问令牌。使用这些令牌,你可以与 GitHub API 进行交互,获取用户的信息或执行其他操作。 6. 使用 GitHub API:一旦用户成功登录授权你的应用程序,你可以使用 GitHub API 访问用户的存储库、个人信息等。根据你的需求,调用适当的 API 端点来获取所需的数据。 这些步骤涵盖了一个基本的 GitHub 第三方登录接入流程。具体实现方式可能因你所使用的编程语言和框架而有所不同,但上述步骤应该能够帮助你开始进行接入。记得在实际开发过程中查阅相关文档和示例代码,以确保正确地实现登录功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值