uni-app实现小程序一键登录,以及在此遇到的问题

uni-app实现一键登录思路如下:

1、通过 button 标签获取用户信息(设置button的open-type为getPhoneNumber,并通过@getphonenumber回调获取到信息)

2、调用 uni.login 方法,获取到 code

3、拿着获取到的 code 和用户信息请求后端接口

其实现代码如下:

html代码

<button class="button-div" type="primary" open-type="getPhoneNumber" @getphonenumber="getUserInfo">
		微信用户一键登录
<button>

js代码

/**
* 获取到手机号的回调
*/
getUserInfo(e) {
    if (e && e.detail.errMsg === 'getPhoneNumber:ok') {
		uni.showLoading({
			mask: true,
			title: '加载中'
		});
		let self = this;
		uni.login({
			provider: 'weixin',
			success: result => {
			    if (result && result.code) {
                    // 此时获取到了用户信息和code,使用这些信息去调用后端接口实现自身逻辑
			        self.authorizeInfo(self.phoneNumberInfo.detail, result.code);
			    }
			},
			fail: result => {
				console.log(result)
			}
		});
	}
},

写完以上代码,登录的逻辑就实现了,但是在测试过程中却发现每次登录都要点击两次按钮才能成功,后端反馈是encryptedData解密失败导致的,解决方法:

在调用getUserInfo()之前先调用一次uni.login方法

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app实现微信小程序一键登录功能,需要使用button组件的open-type开放能力。在button标签中设置open-type为"getUserInfo",并通过@getuserinfo事件来触发wxLogin方法。具体代码如下: <button type="default" open-type="getUserInfo" @getuserinfo="wxLogin">一键登录微信小程序</button> 在App.vue文件中,可以配置小程序的全局样式、生命周期函数等。manifest.json文件用于配置应用名称、appid、logo、版本等打包信息。pages.json文件用于配置页面路径、页面窗口样式、tabBar、navigationBar等页面类信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [uni-app实现微信小程序一键登录](https://blog.csdn.net/qq_45797421/article/details/118339987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [uni-app实现购物商城的微信小程序,优秀毕业设计源代码,小白必看!](https://download.csdn.net/download/qq_42257666/87667930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值