网页三方登录流程

一、QQ第三方登录流程

1. 开发者注册与配置
  • 申请AppID/AppKey:在QQ互联平台创建应用,填写网站域名及回调地址,审核通过后获取appidappkey
  • 域名验证:确保服务器能连通graph.qq.com,回调地址需与注册信息一致
2. 前端授权流程
  • 生成授权链接:构造跳转URL,引导用户至QQ授权页:
    https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=APPID&redirect_uri=回调地址&state=随机数
    • state参数用于防CSRF攻击,scope定义权限范围(如获取基础信息)
  • 用户授权:用户确认后,QQ将携带code重定向至回调地址,格式如:回调地址?code=CODE&state=STATE
3. 后端令牌交换
  • 换取Access Token:使用code向接口https://graph.qq.com/oauth2.0/token发送请求,参数包括grant_type=authorization_codeclient_idclient_secret,返回access_tokenexpires_in(默认30天有效期)
  • 获取OpenID:调用https://graph.qq.com/oauth2.0/me接口,解析返回的openid(用户唯一标识)
4. 用户信息获取
  • 拉取用户数据:通过access_tokenopenid访问https://graph.qq.com/user/get_user_info,获取昵称、头像等基本信息
5. 安全与优化
  • 自动续期:用户再次登录时自动刷新access_token,无需手动处理

  • 存储策略:建议将openid与本地账号关联,支持多平台统一登录(如绑定手机号)


二、微信网页授权登录流程

1. 应用配置
  • 开放平台注册:在微信开放平台创建网站应用,配置授权回调域名,审核通过后获取AppIDAppSecret
  • 域名限制:回调地址需全匹配(含协议和端口)。
2. 前端授权流程
  • 构造授权链接:生成带参数的二维码或跳转链接:
    https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=回调地址&response_type=code&scope=snsapi_login&state=随机数
    • snsapi_login表示需用户主动授权,snsapi_base支持静默授权
3. 后端令牌处理
  • 换取Access Token:使用code调用接口https://api.weixin.qq.com/sns/oauth2/access_token,参数包括appidsecretcode,返回access_token(有效期2小时)和openid
  • 获取用户信息:通过https://api.weixin.qq.com/sns/userinfo接口获取昵称、头像、地区等详细信息(需scope=snsapi_userinfo
4. 高级特性
  • UnionID机制:若需跨公众号/小程序统一用户标识,需申请开通UnionID功能
  • 安全建议access_token由服务端保管,避免前端暴露;通过refresh_token续期令牌

三、支付宝第三方登录流程

1. 开发者配置
  • 开放平台申请:在支付宝开放平台创建应用,配置应用公钥并提交审核,获取app_id和私钥

  • 加签方式:必须使用RSA2签名算法,需上传应用公钥至平台
2. 授权与令牌获取
  • 生成授权链接:构造跳转URL,引导用户至支付宝授权页:
    https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=auth_user&redirect_uri=回调地址
    • scope=auth_user需用户授权,auth_base支持静默获取user_id
  • 换取Access Token:用户授权后,使用auth_code调用alipay.system.oauth.token接口,参数需签名,返回access_token(有效期1小时)和user_id(2088开头的唯一标识)
3. 用户信息获取
  • 拉取用户数据:通过access_token调用alipay.user.info.share接口,获取昵称、头像、性别等信息
4. 安全与扩展
  • 签名验证:所有请求需按参数名排序后生成签名,防止篡改
  • 多应用打通:支付宝无UnionID机制,需通过手机号或本地账号体系关联用户

四、核心差异对比

特性QQ微信支付宝
用户标识openid(应用内唯一)openid + unionid(跨应用)user_id(应用内唯一)
令牌有效期30天(自动刷新)2小时(可续期)1小时(需重新授权)
授权方式显式授权(需用户确认)支持静默(snsapi_base显式(auth_user)或静默(auth_base
签名机制无,依赖appkey无,依赖AppSecretRSA2签名(需公钥/私钥对)
典型应用场景腾讯系游戏、论坛公众号、小程序生态电商、生活服务类应用

五、开发建议

  1. 统一用户体系
    • QQ/微信可通过UnionID关联多平台账号,支付宝需自行设计绑定逻辑(如手机号)
  2. 错误处理
    • QQ:检查state防CSRF,处理code过期(返回100010)
    • 微信:捕获40029code无效)、48001(API权限不足)
    • 支付宝:校验签名失败返回INVALID_SIGNATUREauth_code过期需重新授权
  3. 性能优化
    • 微信/支付宝建议缓存access_token,避免频繁调用接口

如需具体代码实现或更详细配置步骤,可参考对应平台的官方文档(如QQ互联、微信开放平台、支付宝开放平台)。

一、QQ第三方登录流程

1. 开发者注册与配置
  • 申请AppID/AppKey:在QQ互联平台创建应用,填写网站域名及回调地址,审核通过后获取appidappkey
  • 域名验证:确保服务器能连通graph.qq.com,回调地址需与注册信息一致
2. 前端授权流程
  • 生成授权链接:构造跳转URL,引导用户至QQ授权页:
    https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=APPID&redirect_uri=回调地址&state=随机数
    • state参数用于防CSRF攻击,scope定义权限范围(如获取基础信息)
  • 用户授权:用户确认后,QQ将携带code重定向至回调地址,格式如:回调地址?code=CODE&state=STATE
3. 后端令牌交换
  • 换取Access Token:使用code向接口https://graph.qq.com/oauth2.0/token发送请求,参数包括grant_type=authorization_codeclient_idclient_secret,返回access_tokenexpires_in(默认30天有效期)
  • 获取OpenID:调用https://graph.qq.com/oauth2.0/me接口,解析返回的openid(用户唯一标识)
4. 用户信息获取
  • 拉取用户数据:通过access_tokenopenid访问https://graph.qq.com/user/get_user_info,获取昵称、头像等基本信息
5. 安全与优化
  • 自动续期:用户再次登录时自动刷新access_token,无需手动处理
  • 存储策略:建议将openid与本地账号关联,支持多平台统一登录(如绑定手机号)

二、微信网页授权登录流程

1. 应用配置
  • 开放平台注册:在微信开放平台创建网站应用,配置授权回调域名,审核通过后获取AppIDAppSecret
  • 域名限制:回调地址需全匹配(含协议和端口)
2. 前端授权流程
  • 构造授权链接:生成带参数的二维码或跳转链接:
    https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=回调地址&response_type=code&scope=snsapi_login&state=随机数
    • snsapi_login表示需用户主动授权,snsapi_base支持静默授权
3. 后端令牌处理
  • 换取Access Token:使用code调用接口https://api.weixin.qq.com/sns/oauth2/access_token,参数包括appidsecretcode,返回access_token(有效期2小时)和openid
  • 获取用户信息:通过https://api.weixin.qq.com/sns/userinfo接口获取昵称、头像、地区等详细信息(需scope=snsapi_userinfo
4. 高级特性
  • UnionID机制:若需跨公众号/小程序统一用户标识,需申请开通UnionID功能
  • 安全建议access_token由服务端保管,避免前端暴露;通过refresh_token续期令牌

三、支付宝第三方登录流程

1. 开发者配置
  • 开放平台申请:在支付宝开放平台创建应用,配置应用公钥并提交审核,获取app_id和私钥
  • 加签方式:必须使用RSA2签名算法,需上传应用公钥至平台
2. 授权与令牌获取
  • 生成授权链接:构造跳转URL,引导用户至支付宝授权页:
    https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=auth_user&redirect_uri=回调地址
    • scope=auth_user需用户授权,auth_base支持静默获取user_id
  • 换取Access Token:用户授权后,使用auth_code调用alipay.system.oauth.token接口,参数需签名,返回access_token(有效期1小时)和user_id(2088开头的唯一标识)
3. 用户信息获取
  • 拉取用户数据:通过access_token调用alipay.user.info.share接口,获取昵称、头像、性别等信息
4. 安全与扩展
  • 签名验证:所有请求需按参数名排序后生成签名,防止篡改
  • 多应用打通:支付宝无UnionID机制,需通过手机号或本地账号体系关联用户

四、核心差异对比

特性QQ微信支付宝
用户标识openid(应用内唯一)openid + unionid(跨应用)user_id(应用内唯一)
令牌有效期30天(自动刷新)2小时(可续期)1小时(需重新授权)
授权方式显式授权(需用户确认)支持静默(snsapi_base显式(auth_user)或静默(auth_base
签名机制无,依赖appkey无,依赖AppSecretRSA2签名(需公钥/私钥对)
典型应用场景腾讯系游戏、论坛公众号、小程序生态电商、生活服务类应用

五、开发建议

  1. 统一用户体系
    • QQ/微信可通过UnionID关联多平台账号,支付宝需自行设计绑定逻辑(如手机号)
  2. 错误处理
    • QQ:检查state防CSRF,处理code过期(返回100010)
    • 微信:捕获40029code无效)、48001(API权限不足)
    • 支付宝:校验签名失败返回INVALID_SIGNATUREauth_code过期需重新授权
  3. 性能优化
    • 微信/支付宝建议缓存access_token,避免频繁调用接口

如需具体代码实现或更详细配置步骤,可参考对应平台的官方文档(如QQ互联、微信开放平台、支付宝开放平台)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值