Uniapp微信小程序登录怎么写?

2022年8月17日 262点热度 0人点赞 0条评论

第一次用Uniapp写微信小程序,由于Uniapp并不在微信的生态内,因此获取用户opnid的方式也相对来说没那么简单。


在微信小程序开发中,比较常见的就是获取用户的头像及昵称,Uniapp为我们封装了获取用户信息的API-uni.getUserInfo(OBJECT)

图片

调用这个方法的话,程序会提示应用授权,这个授权请求是不是很熟悉。

图片

点击允许后,回调结果中会就会显示用户的头像及昵称了。

图片




头像及昵称是获取了,那么如何在Uniapp中获取用户的openid呢?下图是微信官方的小程序登录说明文档,文中可以看到,在用官方的微信开发者工具开发微信小程序时,需要先调用wx.login()方法获取code,在利用code从微信服务端获取用户的openid。

图片

Uniapp也未我们封装了相应的API-uni.login(OBJECT)uni-id用户体系。

图片

通过uni.login(),我们可以获取上文中提到的code。

图片

接下来我们就需要利用获取到的code从微信服务端获取用户的openid,这一步,我们就可以使用uni-id用户体系实现,仅需访问云函数,就能获取用户的openid,下面将会具体描述uni-id的安装及使用方法。

图片

图片



去插件市场搜索uni-id,导入插件,这样uni-id就会自动安装到你的项目中了。

图片

安装完成之后一般都需要按照图中红框内的要求创建一个config.json文件,文件内容如下,appid和appsecret需要填入自己的,其他不变。

图片

{    "passwordSecret": "bctos-weixin-h5",    "tokenSecret": "bctos-weixin-h5",    "tokenExpiresIn": 7200,    "tokenExpiresThreshold": 600,    "passwordErrorLimit": 6,    "passwordErrorRetryTime": 3600,    "autoSetInviteCode": false,    "forceInviteCode": false,    "app-plus": {        "tokenExpiresIn": 2592000,        "oauth" : {            "weixin" : {                "appid" : "weixin appid",                "appsecret" : "weixin appsecret"            },            "apple":    {                "bundleId": "your APP bundleId"            }        }    },    "mp-weixin": {        "oauth" : {            "weixin" : {                "appid" : "这里是你微信小程序的appid",                "appsecret" : "这里是你微信小程序的appsecret"            }        }    },    "mp-alipay": {        "oauth" : {            "alipay" : {                "appid" : "alipay appid",                "privateKey" : "alipay privateKey"            }        }    },    "service": {        "sms": {            "name": "your app name",            "codeExpiresIn": 180,            "smsKey": "your sms key",            "smsSecret": "your sms secret"        },        "univerify": {            "appid":"your appid",            "apiKey": "your apiKey",            "apiSecret": "your apiSecret"        }    }}

新建云函数usr-login,代码如下

图片

const uniID = require('uni-id')exports.main = async function(event,context) {  // 如下旧写法依然支持  // const res = await uniID.loginByWeixin(event.code)  // const res = await uniID.loginByWeixin({ //    code: event.code //  })  const res = await uniID.loginByWeixin(event.code)    return res}

至此,你就能够获取用户的openid和用户的头像昵称了。



推荐关注:

80050Uniapp微信小程序登录怎么写?

这个人很懒,什么都没留下

文章评论