微信公众号授权
第一步:用户同意授权,获取code(前端发起)
请求方式:
let url=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirectUrl}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`;
window.location.href = url;
相关参数:
appid:公众号唯一标识
redirect_uri:授权后重定向的回调链接地址,需用 urlEncode 对链接进行处理,需要在公众号中提前配置
scope:
1.snsapi_base (静默授权,直接跳转,只能获取用户openid),
2.snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
第二步:通过code换取网页授权openid(服务端发起)
请求方式:
url=`https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code`
相关参数:
secret:公众号的appsecret
code:上一步获取的code参数
grant_type:设置为authorization_code
响应参数:至此即可取到openid
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
第三步:刷新access_token(如果需要)
第四步:拉取用户信息(需scope为 snsapi_userinfo)
支付宝授权
第一步获取 app_auth_code(前端发起)
let url=`https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=${appid}&scope=auth_base&redirect_uri=${decodeURIComponent(redirectUrl)}&state=init`;
window.location.href = url;
相关参数:
appid:公众号唯一标识
redirect_uri:授权后重定向的回调链接地址,需用 urlEncode 对链接进行处理,需要在公众号中提前配置
注意:
1.授权链接中配置的 redirect_uri 内容需要与应用中配置的授权回调地址完全一样,否则无法正常授权。
2.在授权过程中,建议在拼接授权 URL 的时候,开发者可增加自己的一个自定义信息(即 URL 拼接规则中的 state 参数),便于开发者识别是哪个商户的授权
第二步使用 app_auth_code 换取 userId(服务端发起)
接口名称:alipay.open.auth.token.app
说明:开发者通过 app_auth_code 可以 单个/批量 换取 app_auth_token、授权商户的 userId 以及授权商户 AppId。
注意:
1.应用授权的 app_auth_code 是唯一的;app_auth_code 使用一次后失效,单个授权的有效期为一天(从生成 app_auth_code 开始的24小时)未被使用自动过期;批量授权的有效期为 10 分钟。
2.app_auth_token 永久有效。
参考文档
微信公众平台.
支付宝第三方应用授权.