老是提示登录失败,代码没错为啥

来源:6-1 个人中心-用户信息获取+展示

qq_mm_29

2018-07-06

http://img.mukewang.com/szimg/5b3f1c6400018b0808080241.jpg

写回答

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>


0
0

mpvue课程小程序全栈开发

慕课网独家首发 学习mpvue+Koa+vue 全栈开发小程序

1407 学习 · 1331 问题

查看课程