思路:在個人中心頁面,首先判斷全局的 app.js 里面的 globalData 里面的 is_login 狀態,並且判斷 緩存數據中的 is_login 狀態,如果都為真,就正常顯示,如果有一個為假,就要到登錄頁面進行登錄。
具體代碼示例:
app.js:
//app.js App({ globalData: { is_login:false, userInfo:{} } })
登錄頁面:
<view class="com"> <text>賬號:</text> <input bindinput="username" placeholder="賬號" /> </view> <view class="com"> <text>密碼:</text> <input bindinput='userpassword' placeholder="密碼" /> </view> <view class="com"> <button bindtap="btnclick">提交</button> </view>
login.js:
//index.js //獲取應用實例 const app = getApp() Page({ data:{ username:null, password:null, }, username:function(e){ this.setData({ username: e.detail.value}); }, userpassword:function(e){ this.setData({ password: e.detail.value }); }, btnclick:function(){ var that = this; wx.request({ url: 'http://127.0.0.1/testjs/test1.php', data:{ username:that.data.username, password:that.data.password, }, method:'GET', success:function(res){ app.globalData.is_login = true; app.globalData.userInfo = res.data; // 如果需要緩存用戶信息,最好是對用戶信息進行加密后進行存儲 var currentUserInfo = {"is_login":true,"username":that.data.username,"password":that.data.password}; try{ wx.setStorage({ key: 'currentUserInfo', data: currentUserInfo, }) }catch(e){}; wx.switchTab({ url: '../personal/personal', }); } }) }, })
個人中心頁面:
personal.wxml
<view>你好!{{currentUser}}</view>
personal.js:
//獲取應用實例 const app = getApp() Page({ data: { currentUser:null }, onLoad: function (options){ var that = this; // 判斷緩存中 登錄狀態 var isLogin = false; try{ var value = wx.getStorageSync("currentUserInfo"); if(value){ isLogin = value.is_login; }; }catch(e){}; // 判斷 app.json中登錄狀態 if (!app.globalData.is_login && !isLogin){ wx.redirectTo({ url: '../login/login', }); return false; }; that.setData({ currentUser: app.globalData.userInfo.username}); }, })