小程序getUserInfo接口調整後,如何在原有項目中做授權邏輯修改

小程序getUserInfo接口調整後,如何在原有項目中做授權邏輯修改

wx.getUserInfo 接口調整說明。

一、index.js中的修改部分

var app = getApp();

Page({

onLoad: function(t) {

var e = this;

app.ready(); //調用app.js中的ready方法

});

});

二、app.js中修改部分

注意: app.js 中的 toIndex() 方法是跳轉到首頁,這裡我使用的跳轉方式是 wx.switchTab(),因為首頁是一個標籤頁,使用 wx.navigateTo({ url : }) 或 wx.redirectTo({ url: }) 等跳轉方式可能會不起作用,所以對標籤頁的跳轉建議使用 wx.switchTab() 方式。

App({

onLaunch: function() {},

onShow: function() {},

……

globalData: {

userInfo: null

},

toIndex: function () {

// 前往首頁界面

wx.switchTab({

url: '/pages/index/index'

});

},

toLogin: function () {

wx.navigateTo({

url: '/pages/login/login'

});

},

ready: function () {

let promise = new Promise((resolve, reject) => {

const userkey = wx.getStorageSync('userkey');

const userId = wx.getStorageSync('userId');

const sessionData = wx.getStorageSync('sessionData');

// 檢查用戶是否具有登錄狀態

if (!userkey || !userId || !sessionData) {

// 如果未登錄就前往登錄界面

this.toLogin();

} else {

// 如果有就只要更改一下Promise,以繼續執行後續操作

resolve();

}

})

return promise;

},

getUserInfo: function (cb, failcb) {

var that = this;

if (this.globalData.userInfo) {

//已有登錄信息

typeof cb == "function" && cb(this.globalData);

console.log('已有登錄信息');

} else {

//無登錄信息,請求獲取用戶信息

wx.getUserInfo({

success: function (res) {

wx.login({

success: function (res1) {

var code = res1.code;

console.log(res1);

that.globalData.userInfo = res.userInfo;

console.log('用戶信息', that.globalData.userInfo);

that.login(code, res, cb);

}

})

}, fail: function (res) {

typeof failcb == "function" && failcb(res);

}

})

}

},

login: function(code, res, cb){

if(code && res){

typeof cb == "function" && cb(res);

}

}

});

在小程序項目文件的 pages/ 目錄下新建一個 login/ 目錄,login目錄中各部分代碼如下:

login.wxss部分:

.loading_tip{

position: fixed;

height: 100%;

width: 100%;

display:flex;

flex-direction:column;

align-items:center;

justify-content: center;

font-size: 1rem

}

login.wxml部分:

啟動中

Copyright © 2018

login.js部分:

var app = getApp();

Page({

data: {

loading: true

},

onLoad: function () {

var that = this;

app.getUserInfo(function () {

app.toIndex(); //加載成功

}, function () {

that.setData({ loading: false }); //加載失敗

});

},

login: function (e) {

app.globalData.userInfo = e.detail.userInfo;

console.log('用戶信息', app.globalData.userInfo);

wx.login({

success: function (res) {

var code = res.code;

app.login(code, e.detail, function () {

app.toIndex();

});

}

})

}

});

四、效果截圖

小程序getUserInfo接口調整後,如何在原有項目中做授權邏輯修改
小程序getUserInfo接口調整後,如何在原有項目中做授權邏輯修改
小程序getUserInfo接口調整後,如何在原有項目中做授權邏輯修改

跳轉回到首頁。

五、延伸擴展

這是一套基於we7框架的同城微圈小程序,如果大家想要這套源碼(含完整的小程序前端+we7框架+後臺管理插件),或者對小程序 getUserInfo 接口調整後,原有項目中做邏輯修改還有什麼問題,可以關注後私信我【同城微圈】關鍵字,將為您解答。


分享到:


相關文章: