免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

微信小程序登錄驗(yàn)證實(shí)現(xiàn)

發(fā)布時(shí)間:2018-02-10 11:00 所屬欄目:小程序開發(fā)教程

需求描述:

        對(duì)于部分頁(yè)面添加登錄驗(yàn)證,用戶未登錄的情況下,進(jìn)入頁(yè)面,頁(yè)面自動(dòng)轉(zhuǎn)向登錄頁(yè)面。登錄驗(yàn)證成功后,回調(diào)到登錄發(fā)起頁(yè)面。

    實(shí)現(xiàn)思路:

        創(chuàng)建全局變量用于存儲(chǔ)當(dāng)前登錄用戶對(duì)象(userInfo)、全局方法用于驗(yàn)證登錄有效性(checkLoginInfo())、全局方法用于獲取當(dāng)前頁(yè)面的全路徑(getCurrentUrl())。

            針對(duì)需要添加登錄限制的頁(yè)面page.onLoad事件,調(diào)用checkLoginInfo()方法,判斷當(dāng)前登錄狀態(tài)。如未登錄,頁(yè)面轉(zhuǎn)向登錄頁(yè)面。

            登錄驗(yàn)證通過(guò)后,將登錄信息存儲(chǔ)到全局變量userInfo,跳轉(zhuǎn)回登錄發(fā)起頁(yè)面。

    關(guān)鍵代碼及注意事項(xiàng):

            app.js

 data:{
    userInfo:null,//用戶登錄存儲(chǔ)對(duì)象
    loginUrl:"../login/login",
  },
  checkLoginInfo:function(url){//驗(yàn)證登錄狀態(tài)
    if(this.data.userInfo==null){
      return url;
    }else{
      return "";
    }
  },
  getCurrentUrl:function(){//獲取當(dāng)前頁(yè)面全路徑
    var url=getCurrentPages()[getCurrentPages().length-1].__route__;
    url=url.replace("eapdomain/src/pages","..");//替換路徑全路徑。修改該路徑為相對(duì)路徑
    return url;
  }

        注意:在getCurrentUrl方法中,最后返回url時(shí),又調(diào)用了replace方法。因?yàn)閣x.redirectTo的url參數(shù)要求為相對(duì)路徑。所以在這里轉(zhuǎn)換了一下。

        login.wxml

<!--eapdomain/src/pages/login/login.wxml-->
<view>
	<text>登錄頁(yè)面</text>
</view>
<view>
	<text>用戶名</text>
	<input type="text" placeholder="請(qǐng)輸入用戶名" bindinput="inputClick" id="loginName"></input>
</view>
<view>
	<text>密碼</text>
	<input type="password" placeholder="請(qǐng)輸入密碼" bindinput="inputClick" id="passWord"></input>
</view>
<view>
	<button type="primary" catchtap="loginClick">登錄</button>
</view>
   

        login.js

// eapdomain/src/pages/login/login.js
var app=getApp();
Page({
  data:{
    backUrl:null,
    loginName:null,
    passWord:null
  },
  onLoad:function(options){
    this.setData({
      backUrl:null
    });
    // 頁(yè)面初始化 options為頁(yè)面跳轉(zhuǎn)所帶來(lái)的參數(shù)
    //console.log(options.backUrl);
    this.setData({
      backUrl:options.backUrl
    });
  },
  inputClick:function(event){
    //動(dòng)態(tài) 對(duì) paga.data 進(jìn)行賦值
    //id與 數(shù)據(jù)項(xiàng) 一一對(duì)應(yīng)
    var objId=event.currentTarget.id;
    
    var paraObj={};
    paraObj[objId]=event.detail.value;
    this.setData(paraObj);
    //console.log(event.currentTarget.id);
    //console.log(this.data);
  },
  onReady:function(){
    // 頁(yè)面渲染完成
  },
  onShow:function(){
    // 頁(yè)面顯示
  },
  onHide:function(){
    // 頁(yè)面隱藏
  },
  onUnload:function(){
    // 頁(yè)面關(guān)閉
  },
  loginClick:function(){

    var loginName=this.data.loginName;
    var passWord=this.data.passWord;

    if(loginName!=null&&passWord!=null){
      var backUrl=this.data.backUrl;
      // wx.redirectTo({
      //   url:'eapdomain/src/pages/pageCreate/pageCreate'
      // })
      app.data.userInfo={
          loginName:loginName,
          passWord:passWord
        };

      wx.redirectTo({
        url: backUrl
      });

    //   wx.redirectTo({
    // //目的頁(yè)面地址
    //       url: 'pages/logs/index',
    //       success: function(res){},
          
    //   })
    }else{
      this.setData({
        loginName:null,
        passWord:null
      });
    }
  }
})

        注意:這里inputClick事件。根據(jù)前臺(tái)控件id為page.data數(shù)據(jù)進(jìn)行賦值。

        只為實(shí)現(xiàn)功能,UI設(shè)計(jì)還有待提高。還請(qǐng)見諒。


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/21917.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服