收藏
回答

getPhoneNumbe button 组件走登陆 5分钟授权但是后端接口提示1005?

微信版本8.0.17 基础库2.21.4 button getphoneNumber登录,页面初始化获取了code然后我操作登录授权是页面初始化10分钟左右,然后提示我1005

	<button
				type="default"
				:loading="loginLoading"
				open-type="getPhoneNumber"
				@getphonenumber="decryptPhoneNumber"
				class="login__wx"
			>授权登录</button>			

getWxcode () {
				wx.login({
					provider: 'weixin',
					success: (loginRes) => {
						this.code = loginRes.code
						uni.setStorageSync('tyycode', loginRes.code)
					}
				})
			},
			decryptPhoneNumber (e) {
				if (this.loginLoading) return
				if (e.detail.errMsg === 'getPhoneNumber:ok') {
					uni.showLoading({
					    title: '登录中...'
					})
					const encryptedData = e.detail.encryptedData
					const iv = e.detail.iv
					wx.checkSession({
						success: (res) => {
							console.log(res)
							this.phoneLogin(encryptedData, iv)
						},
						fail: (err) => {
							uni.login({
								provider: 'weixin',
								success: (res) => {
									this.code = res.code
									this.phoneLogin(encryptedData, iv)
								}
							})
						}
					})
				}
			},
			async phoneLogin (encryptedData, iv) {
				let _this = this
				this.loginLoading = true
				const resData = await api.login.wxLogin({
					encryptedData,
					iv,
					code: this.code
				})
				const { errcode = '', data = {}, message = '登录失败' } = resData
				uni.hideLoading()
				if (errcode === 0) {
					// "is_need_login": 2  // 是否需要重新登陆:0不需要,1需要
					const {
						api_token = ''
					} = data
					uni.showToast({
						title: '登录成功',
						icon: 'success',
						duration: 1500,
						success: () => {
							uni.setStorageSync('api_token', api_token)
							_this.$store.commit(IS_NEED_LOGIN, 0)
							_this.loginLoading = false
							uni.reLaunch({
								url: `/pages/index/index`
							})
						}
					})
				} else if (errcode === 1500) {
					this.$refs['popup'].open()
					this.getWxcode()
					this.loginLoading = false
				} else {
					this.loginLoading = false
					this.getWxcode()
					uni.showToast({
						title: message,
						icon: 'none'
					})
				}
			},
			popupClick () {
				this.$refs['popup'].close()
			}
		},
回答关注问题邀请回答
收藏

3 个回答

  • brave
    brave
    2022-01-21

    errcode 后端返回的,找后端定位问题啊,前后端不沟通的吗

    2022-01-21
    有用 1
    回复 1
    • Cinder
      Cinder
      2022-01-21
      跟后台沟通了就是我那个code,他们解析信息解析不到,session_kye过期了。这个代码和我们之前做的一模一样,后台也是。就困惑了。双方代码都一样,之前的小程序没问题,这次就有问题了,我怀疑是工具版本问题,装了好多还是有问题,就不知道什么情况了
      2022-01-21
      回复
  • pandaHe
    pandaHe
    2022-01-22

    这个问题和我之前遇到的问题好像,

    当时我是在onLoad那里获取code传给后台就不出现这个问题了

    2022-01-22
    有用
    回复 1
    • Cinder
      Cinder
      发表于移动端
      2022-01-22
      我代码也这样写的,登陆没问题,但是在这个页面停留10分钟左右在授权就有问题,之前使用这方法没有问题,现在不知道什么情况跟之前不一样了
      2022-01-22
      回复
  • Cinder
    Cinder
    2022-01-21

    2022-01-21
    有用
    回复
登录 后发表内容