前言
在微信中如何获取用户的openid,一般思路如下,首先通过wx.login获取的code,然后解析出code,从而获取到openid
一、openid是什么?
微信用户唯一标识,说白了就是唯一值
二、微信 前端写法
1.使用wx.login获取code
代码如下(示例):
wx.login({
success (res) {
if (res.code) {
//发起网络请求
wx.request({
url: 'https://example.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
这里会得到一个 code
code 用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 auth.code2Session,使用 code 换取 openid、unionid、session_key 等信息
2.request
到时在微信端,调用在springboot写好的解析code的方法
把code,传递给后端
三 spring boot 后端写法
1 新建数据模型
import lombok.Data;
/**
* 微信code返回信息
*/
@Data
public class JsCodeDto {
private String openid;//微信用户的唯一标识
private String session_key;//会话密钥
private String unionid;//用户在微信开放平台的唯一标识符。本字段在满足一定条件的情况下才返回。
private Integer errcode;
private String errmsg;
}
用于接收,解析出来的
2 解析code
需要用到凭证参数
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
appid | string | 是 | 小程序 appId |
secret | string | 是 | 小程序 appSecret |
js_code | string | 是 | 登录时获取的 code |
grant_type | string | 是 | 授权类型,此处只需填写 authorization_code |
url 地址是固定的 https://api.weixin.qq.com/sns/jscode2session
appid 是每个小程序固定id,在小程序后台就可查询到
secret 是每个小程序秘钥,可在小程序后台获得
js_code 是微信前端wx.login获得的code
grant_type 固定填写authorization_code
请求方法 用到 restTemplate,相对代码比较简洁
然后,jscodeDto,模型中,可提供自己后面的调用
总结
调用openid,是每一个登录比需要操作,思路分前端和后端。前端获取 code,后端解析code,从而得到openid
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107095.html