微信登录

最后更新于:2022-04-02 03:39:50

[TOC] ## 微信登录 流程: 1. 调用[wx.login()](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html)获取**临时登录凭证code**,并回传到开发者服务器。 2. 调用[auth.code2Session](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html)接口,换取**用户唯一标识 OpenID**、 用户在微信开放平台帐号下的**唯一标识UnionID**(若当前小程序已绑定到微信开放平台帐号) 和**会话密钥 session\_key**。 ### 方式一: 通过 button 通过button 来获取用户信息, 设置 open-type="getUserInfo" ``` // js getUserInfo(e) { if (e.detail.errMsg == 'getUserInfo:ok') { //对数据进行操作 // 得到 code uni.request({ url: 'https://example.com/onLogin', data: { code: code } }) } else { this.$operate.toast({ title: '授权失败无法登录!' }) } }, ``` 获取到 code 后 返回给后台 在后台发起请求 ``` GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code ``` 返回 | 属性 | 类型 | 说明 | | --- | --- | --- | | openid | string | 用户唯一标识 | | session\_key | string | 会话密钥 | | unionid | string | 用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见[UnionID 机制说明](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html)。 | | errcode | number | 错误码 | | errmsg | string | 错误信息 | ### 方式二: uni.login ``` // js userInfo() { //获取code uni.login({ provider: 'weixin', success(login) { console.log(login); // 得到 code uni.request({ url: 'https://example.com/onLogin', data: { code: login.code } }) } }) } ```
';