imeay / blog

my blog
0 stars 0 forks source link

微信登录之网站应用接入 #18

Open imeay opened 6 years ago

imeay commented 6 years ago

网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。

申请应用及配置

在微信开发平台上(open.weixin.qq.com)申请网站应用 image

申请后,除了基本的appid及appsecret,还需要设置授权回调域(很多人总是忘记设置这个) image

授权

完成上面的步骤后,接下来就进入接入环节了

微信网站应用接入文档

每个环节基本都有需要注意的点

第一步:请求CODE

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 需要注意

  • redirect_uri 这里要对跳转的uri进行urlEncode处理
  • scope 的值 snsapi_login

第二步:通过code获取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 这一步在后端进行,请求参数没什么要注意的, 但返回的信息很重要

{
.....,
openid,
unionid,
}

其中unionid在同一个开发主体下的不同应用是一致的,如果开发主体需要旗下各应用微信统一账号,可用其作为唯一的标示

第三步:通过access_token调用接口

调用的接口就根据业务需要了 image

实际上微信登录后,一般请求以下接口: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

该接口会返回用户在微信上的基本信息及unionid, 可在数据表验证unionid,根据是否存在,不存在则创建用户,最终设置成自己网站的登陆态即可