老是提示登录失败,代码没错为啥
来源:6-1 个人中心-用户信息获取+展示
qq_mm_29
2018-07-06

写回答
1回答
-
張叄子
2018-07-07
官方接口已经改了。试试这段代码,整个的Me.vue
<template> <div class="container"> <div class="userinfo"> <img v-show="userinfo" :src="userinfo.avatarUrl" alt="logo"> <img v-show="!userinfo" src="http://image.shengxinjing.cn/rate/unlogin.png" alt="logo"> <p>{{userinfo.nickName}}</p> <button v-if="userinfo.openId" @click="scanBook" class="btn">添加图书</button> <button class="btn" v-else open-type="getUserInfo" lang="zh-CN" @getuserinfo="login">点击登录</button> </div> <year-progress></year-progress> </div> </template> <script type="text/ecmascript-6"> import {showSuccess, showModal} from '@/util' import qcloud from 'wafer2-client-sdk' import config from '@/config' import YearProgress from '@/components/YearProgress' export default { data() { return { userinfo: { avatarUrl: '', nickName: '' } } }, created () { this.userinfo = wx.getStorageSync('userinfo') }, methods: { // async addBook(isbn) { // const res = await post('/weapp/addbook', { // isbn, // openid: this.userinfo.openId // }) // showModal('添加成功', `${res.title}添加成功`) // }, scanBook() { wx.scanCode({ success: (res) => { if (res.result) { console.log(res.result) // this.addBook(res.result) } } }) }, getWxLogin({encryptedData, iv, userinfo}){ const self = this wx.login({ success(loginResult) { console.log('loginResult', loginResult) var loginParams = { code: loginResult.code, encryptedData: encryptedData, iv: iv } qcloud.setLoginUrl(config.loginUrl) qcloud.requestLogin({ loginParams, success() { qcloud.request({ url: config.userUrl, login: true, success(userRes) { showSuccess('登录成功') wx.setStorageSync('userinfo', userRes.data.data) self.userinfo = userRes.data.data } }) }, fail(error) { showModal('登录失败', error) } }) }, fail(loginError) { showModal('登录失败', loginError) } }) }, login(e) { const self = this wx.getSetting({ success(res) { if (res.authSetting['scope.userInfo']) { wx.checkSession({ success() { showSuccess('登录成功') }, fail() { qcloud.clearSession() var options = { encryptedData: e.mp.detail.encryptedData, iv: e.mp.detail.iv, userinfo: e.mp.detail.userInfo } self.getWxLogin(options) } }) } else { showModal('用户未授权', e.mp.detail.errMsg) } } }) } }, onShow() { let userinfo = wx.getStorageSync('userinfo') if(userinfo) { this.userinfo = userinfo } }, components: { YearProgress } } </script> <style scoped lang="scss" rel="stylesheet/scss"> .container{ padding: 0 30rpx; } .userinfo{ margin-top: 100rpx; text-align: center; img{ width: 150rpx; height: 150rpx; margin: 20px; border-radius: 50%; } p{ margin-bottom: 10px; } } </style>00
相似问题