APP开发,微信第三方登录的介绍

去年做了一阵APP相关的开发,经常遇到第三方登陆的需求,比如微信、微博、fb的第三方登陆等等,其实主要的流程都大同小异,这里就以微信为例来介绍,希望对大家有帮助。

微信开放平台(open.weixin.qq.com)

  1. 注册开发者账号,填写基本信息,例如邮箱,邮箱激活
  2. 完善开发者的资料,包括真实姓名,手机,地址等
  3. 腾讯审核开发者资质,审核费用每年300
  4. 在管理中心创建应用,分移动应用、网站应用等不同类型
  5. 填写应用的名称、简介、logo、应用的官方网站等信息
  6. 腾讯审核,7个工作日
  7. 通过后可获得该应用的APPID、AppSecret
  8. 并且可在应用详情中申请开通微信登录、微信支付等

调用流程

1. 获取授权码(code)

1.1. 移动应用调用SDK
1.2. 网站应用调用

https://open.weixin.qq.com/connect/qrconnect

并传入APPID,及重定向地址,生成二维码地址。用户使用微信扫描二维码并同意授权后,跳转至重定向地址,并且带来了授权码。

2. 使用授权码获取access_token

2.1. 通过调用

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

返回结果类似如下:

{ 
 "access_token":"ACCESS_TOKEN", 
 "expires_in":7200, 
 "refresh_token":"REFRESH_TOKEN",
 "openid":"OPENID", 
 "scope":"SCOPE",
 "unionid": "UNIONID"
}

2.2. access_token有效期
有效期较短(2小时),refresh_token有效期一个月,可以使用refresh_token刷新access_token,避免频繁要求用户同意授权。

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

2.3. 多个应用的情况
如果同时有多个应用,同一个微信用户在不同的应用上登录会生成不同的openid,但unionid相同,若需要同一微信用户映射到后台的同一账户上,应使用unionid。

3.通过access_token获取用户信息(如昵称等),

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID"

备注

以上调用步骤可以完全由前端(APP、WEB)完成,不过一般应用后台有自己的一套用户系统,所以应用后台可以在不同的步骤介入,例如可以在前端活动用户信息后调用后台进行入库保存,或者也可已在获得access_token后介入,由后台访问微信获取用户信息。

好了,今天就先到这儿,cheers!



送书了,送书了,没有套路,没有套路,关注公众号“后厂村思维导图馆”,就送出O'Reilly《Spark快速大数据分析》纸质书(亦有一批PDF分享)!

posted @   后厂村思维导图馆  阅读(3215)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示