uni-app+uniCloud获取微信小程序用户openid

1关联unicloud云服务之后在cloudcallfuntion下新建云函数,我这里命名为login

2.在index.js中,需要传递四个参数发起请求获取openid

3.其中第一个是appId(小程序ID),第二个是secret(小程序密钥)第三个参数js_code(登录凭证)请往下看,第四个参数grant_type(授权类型)直接写就可以了都在微信公众平台可以查看。进官网请这边走:微信公众平台 (qq.com)

4.登录之后点击右侧导航栏的开发管理,在开发设置里面就可以查看到属于自己的小程序id和密钥

const db = uniCloud.database()
const appId = 'wxea10293a8503ff4e'
const appSecret ='230ced359fca4b02106a0e2ba759dd26'
exports.main = async (event, context) => {
	//event为客户端上传的参数
	const {code} =event
	const res = await uniCloud.httpclient.request(
	"https://api.weixin.qq.com/sns/jscode2session?appid="+appId+"&secret="+appSecret+"&js_code="+code + "&grant_type=authorization_code",
	{
		dataType:"json"
	}
	)
	const token = await uniCloud.httpclient.request(
	`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`,
	{
		dataType:"json"
	}
	)
	const openid = res.data.openid
	//返回数据给客户端
	return {openid,token}

5.上面还有一个解构出来的code参数,这里的code指的是通过微信登录时,微信返回的一个登录凭证,需要调用微信登录接口获取.

     uni.login({
		provider: 'weixin'
			}).then(res=>{
               console.loh(res.code)
               //这里得到的就是登录凭证code
     })

6.最后页面调用开始命名的login云函数,就能拿到微信用户的openid了!

           uniCloud.callFunction({
						name: 'login',
						data: {
							code: res.code
						}
                      }).then(res=>{
                      console.log(res.result.openid)
                      //这里就是拿到用户的openid啦                
                      })  

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
uni-app 是一款跨平台应用开发框架,既支持生成 App,也支持生成各个平台的小程序,其中与微信小程序的授权方法有一些不同。 首先,对于 App 来说,可以使用 uni-app 提供的登录模块,该模块支持微信、支付宝等第三方平台的授权登录。对于微信授权登录,可以通过以下步骤实现: 1. 在 uni-app 的项目中安装并引入 uni-login 模块:`npm install @dcloudio/uni-login` 2. 在需要授权的页面中,添加登录按钮或其它触发授权的元素。 3. 在点击登录按钮的事件处理函数中,调用 uni.login 方法进行微信登录授权。 4. 在 uni.login 的回调中,可以通过返回的 code 或 token 等信息进行登录验证、获取用户信息等操作。 而对于生成微信小程序uni-app 也提供了相关的授权方式。在 uni-app 中,可以使用 openidunionid 来进行用户标识和登录验证。具体的授权方法如下: 1. 在微信小程序app.json 文件中,将 `"appid"` 字段设置为你的小程序的 AppID。 2. 在 uni-app 的项目中引入并使用 uni.login 方法,通过该方法登录获取 code。 3. 将获取到的 code 发送至后台,后台通过 code 调用微信的 API 获取 openid 和 session_key。 4. 后台获取openid 和 session_key 后,可以将其存储在数据库中,用于用户标识和登录验证。 总之,无论是在 uni-app 生成 App 还是小程序,都可以通过 uni-login 模块实现微信授权登录。对于 App,可以直接使用登录模块进行授权;对于小程序,可以通过 openid 和 session_key 实现用户标识和登录验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下逼王尘少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值