我感觉这个书上的微信小程序登陆写得不好
生活随笔
收集整理的這篇文章主要介紹了
我感觉这个书上的微信小程序登陆写得不好
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本功能是OK,但是感覺傳的數據太多,不安全,需要改寫。
?
App({d: {hostUrl: 'http://www.test.com/index.php', //請?zhí)顚懩约旱男〕绦蛑鳈CURLappId: "xxx",appKey: "xxx",ceshiUrl: 'http://www.test.com/index.php',//請?zhí)顚懩约旱臏y試URL },//小程序初始化完成時觸發(fā),全局只觸發(fā)一次onLaunch: function () {//調用API從本地緩存中獲取數據var logs = wx.getStorageSync('logs') || []logs.unshift(Date.now())wx.setStorageSync('logs', logs);//loginthis.getUserInfo();},getUserInfo: function (cb) {var that = thisif (this.globalData.userInfo) {typeof cb == "function" && cb(that.globalData.userInfo)} else {wx.getSetting({success: function (res) {if (res.authSetting['scope.userInfo']) {wx.login({success: function (res) {//console.log(res);var code = res.code;//get wx user simple info wx.getUserInfo({withCredentials: true,success: function (res) {//如果已經授權過那么會執(zhí)行這里代碼,console.log("已授權標記");that.globalData.userInfo = res.userInfo;typeof cb == "function" && cb(that.globalData.userInfo);//get user sessionKey that.getUserSessionKey(code);if (that.userInfoReadyCallback) {that.userInfoReadyCallback(res)}}});}})} else {// 沒有授權,重定向到 loading 啟動頁 wx.navigateTo({url: '../tologin/tologin',})}}})}},getUserSessionKey: function (code) {//用戶的訂單狀態(tài)var that = this;wx.request({url: that.d.ceshiUrl + '/Api/Login/getsessionkey',method: 'post',data: {code: code},header: {'Content-Type': 'application/x-www-form-urlencoded'},success: function (res) {//--init data var data = res.data;if (data.status == 0) {wx.showToast({title: data.err,duration: 2000});return false;}that.globalData.userInfo['sessionId'] = data.session_key;that.globalData.userInfo['openid'] = data.openid;that.onLoginUser();},fail: function (e) {wx.showToast({title: '網絡異常!err:getsessionkeys',duration: 2000});},});},//授權登錄onLoginUser: function () {var that = this;var user = that.globalData.userInfo;wx.request({url: that.d.ceshiUrl + '/Api/Login/authlogin',method: 'post',data: {SessionId: user.sessionId,gender: user.gender,NickName: user.nickName,HeadUrl: user.avatarUrl,openid: user.openid},header: {'Content-Type': 'application/x-www-form-urlencoded'},success: function (res) {//--init data var data = res.data.arr;var status = res.data.status;if (status != 1) {wx.showToast({title: res.data.err,duration: 3000});return false;}that.globalData.userInfo['id'] = data.ID;that.globalData.userInfo['NickName'] = data.NickName;that.globalData.userInfo['HeadUrl'] = data.HeadUrl;var userId = data.ID;if (!userId) {wx.showToast({title: '登錄失敗!',duration: 3000});return false;}that.d.userId = userId;},fail: function (e) {wx.showToast({title: '網絡異常!err:authlogin',duration: 2000});},});},globalData: {userInfo: null},onPullDownRefresh: function () {wx.stopPullDownRefresh();}});如果不想首頁自動登陸,在其它頁調用登陸:
// pages/user/user.js var app = getApp() Page({data: {userInfo: {},orderInfo: {},loadingText: '加載中...',loadingHidden: false,},onLoad: function () {var that = this//調用應用實例的方法獲取全局數據app.getUserInfo(function (userInfo) {//更新數據 that.setData({userInfo: userInfo,loadingHidden: true})});console.log("個人中心:--" + app.d.userId);this.loadOrderStatus();}, })?
轉載于:https://www.cnblogs.com/aguncn/p/11100110.html
總結
以上是生活随笔為你收集整理的我感觉这个书上的微信小程序登陆写得不好的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx多种负载均衡策略搭建
- 下一篇: day05 selenium库的基础使用