大致步骤:
1.在小程序上注册后,拿到App ID和App Secret
2.先授权
uni.getUserProfile():先让用户授权微信登录
3.拿code
用uni.login({ provider: 'weixin' })拿到code
4.拿openID
把App ID、App Sercret和code传入后端作为三个参数,请求拿到openID
详细步骤:
1.登录小程序平台拿到App ID和App Secret
因为这两个是不变的,在代码中可定义在一个公共组件中导出,需要的地方引入即可
2.先授权
用uni.getUserProfile()让用户确认授权微信登录,返回的数据就是该微信的数据,只不过微信头像默认为灰色头像,微信昵称默认为“微信用户”。
3.拿code
因为要保存数据到后台,所以就把上一步拿到的数据往下传。用户授权后就可用uni.login()拿到登录code,后端请求拿用户的openID时需要用到该参数。
4.拿openID
要拿openID则需请求该url,就需要App ID、App Secret和code这三个参数。即可拿到openID,因为每个微信登录后得到的openID是唯一的,所以有必要在后台保存一个,后期可借此来对该用户的信息进行操作。
附:拿真实的微信头像和微信昵称
以上步骤完成后,可实现微信登录。但是只实现了灰色头像和“微信用户”昵称
实际操作时,肯定还需获取真实的头像和昵称。
选择头像时可在button标签上用属性@chooseavatar。下图中onChooseAvatar为选择头像后的回调函数。(注意:必须写open-type,而且只在button标签上有效)
获取真实昵称,可在input标签上用type="nickname"。
以上就为uniapp授权微信登录的具体步骤,我后台是使用的uniCloud。