# 借助微信鉴权 [https://developers.weixin.qq.com/doc/service/guide/h5/auth.html] 借助微信平台的用户的openid作为鉴权 用户首次使用平台借助snsapi_userinfo登录,从这里获取或创建用户 一般使用snsapi_base登录 scope=snsapi_base ## 参考代码所用的api Gettoken # 主要 getjsapiticket Createlink Getcode ```text 1.微信公众号按钮会链接这个 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect 2.用户会跳转回REDIRECT_URI?code 因此REDIRECT_URI这个是https://aaabbb/api/fadfas/getcode 后端代码提取/api/fadfas/getcode中的?后面内容,也就是code 然后后端代码直接发送ajax往这个地址https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code authorization_code是snsapi_userinfo或snsapi_base 拿到了openid,判断这个用户是否之前登录过,如果没有,重新第一步,并让前端跳转到 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx807d86fb6b3d4fd2&redirect_uri=http%3A%2F%2Fdevelopers.weixin.qq.com&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 方法是返回前端一个很小的页面,页面内容为直接跳转另一个url。 进一步抓取微信公众号的昵称与头像 页面与后台进行api请求,是直接发送openid吗? 直接发送openid很危险,因此这里后台拿到openid后,随机生成一个32位随机数当做token,然后将token返回给前端。 方法是{{杨星华的页面}}?token=ssxxxccd ``` 设备自带二维码,扫码后配置设备/配网,此时可以绑定到用户,此时该用户“拥有/创建”该设备