unaipp小程序端获取openid

小程序开发时, 用户使用小程序须要受权, 这时就要用到openid进行绑定这个用户。openid是指这个用户在某一个小程序中受权后的惟一标识(好比你的身份证)

1. 获取code值

通过uni.login()接口(同理wx.login), 拿到用户的code值(5分钟后失效)

hqCode() {
    
     // 获取登录凭证 code
	uni.login({
    
    
		provider: 'weixin',
		success: res => {
    
    
			this.code = res.code
		}
	});
},

企业级开发,前端代码就是获取uni.login()获取code,并将code传给后端换取openid即可。
前端也可以独立获取openid,不过我个人感觉没什么作用。

2. 获取openid

使用uniapp中的 uni.request,即可实现。

uni.request({
    
    
	url: 'https://api.weixin.qq.com/sns/jscode2session',
	method: 'GET',
	data: {
    
    
		appid: 'xxxxxxx', //你的小程序的APPID  
		secret: 'xxxxxxxxxxx', //你的小程序的secret,  
		js_code: this.code, //wx.login 登录成功后的code  
		grant_type: 'authorization_code',
		},
	success: (cts) => {
    
     // 换取成功后 暂存这些数据 留作后续操作  
		this.openId = cts.data.openid //openid 用户唯一标识  
		this.unionid = cts.data.unionid //unionid 开放平台唯一标识   当公众号和小程序同时登录过才会有
		this.session_key = cts.data.session_key //session_key  会话密钥  
		console.log(cts)
	}
})

里面的 app ID 和 secret 密钥在微信开发者工具中可以获取到。
微信开发者工具地址

在这里插入图片描述

3. 完整代码

login() {
    
     // 获取登录凭证 code
	uni.login({
    
    
		provider: 'weixin',
		success: res => {
    
    
			this.code = res.code
			uni.request({
    
    
				url: 'https://api.weixin.qq.com/sns/jscode2session',
				method: 'GET',
				data: {
    
    
					appid: 'xxxxxxxx', //你的小程序的APPID  
					secret: 'xxxxxxxxxxx', //你的小程序的secret,  
					js_code: this.code, //wx.login 登录成功后的code  
					grant_type: 'authorization_code',
				},
			success: (cts) => {
    
     // 换取成功后 暂存这些数据 留作后续操作  
				this.openId = cts.data.openid //openid 用户唯一标识  
				this.unionid = cts.data.unionid //unionid 开放平台唯一标识   当公众号和小程序同时登录过才会有
				this.session_key = cts.data.session_key //session_key  会话密钥  
				console.log(cts)
				}
			})
		}
	});
},

成功后就会返回openid

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_53156345/article/details/132214919