小程序云開(kāi)發(fā)之用戶注冊(cè)登錄
本文實(shí)例為大家分享了小程序云開(kāi)發(fā)用戶注冊(cè)登錄的具體代碼,供大家參考,具體內(nèi)容如下
注冊(cè)界面和文件
登錄界面和文件
這里的UI使用iviewUI 不懂可以看我的另一篇文章IviewUI
先說(shuō)注冊(cè)界面
json如下
wxml如下
<!--pages/register/index.wxml--> <view> <i-input bind:change='inputName' maxlength="15" title="賬號(hào)" autofocus placeholder="請(qǐng)輸入賬號(hào)" /> <i-input bind:change='inputPassword' maxlength="15" title="密碼" autofocus placeholder="請(qǐng)輸入密碼" /> <i-button bindtap='register' type="success">注冊(cè)</i-button> </view>
js頁(yè)面
// pages/register/index.js let app = getApp(); //獲取云數(shù)據(jù)庫(kù)引用 const db = wx.cloud.database(); const admin = db.collection('adminlist'); let name = null; let password = null; Page({ data: { }, //輸入用戶名 inputName:function(event){ name = event.detail.detail.value }, //輸入密碼 inputPassword(event){ password = event.detail.detail.value }, // .where({ // _openid: app.globalData.openid // 填入當(dāng)前用戶 openid // }) // wx.showModal({ // title: '提示', // content: '您已注冊(cè),確定要更新賬號(hào)密碼嗎?', // success: function (res) { // if (res.confirm) { // console.log('用戶點(diǎn)擊確定') // that.saveuserinfo(); // } // } // }) //注冊(cè) register(){ let that = this; let flag = false //是否存在 true為存在 //查詢用戶是否已經(jīng)注冊(cè) admin.get({ success:(res)=> { let admins = res.data; //獲取到的對(duì)象數(shù)組數(shù)據(jù) // console.log(admins); for (let i=0; i<admins.length; i++){ //遍歷數(shù)據(jù)庫(kù)對(duì)象集合 if (name === admins[i].name){ //用戶名存在 flag = true; // break; } } if(flag === true){ //已注冊(cè) wx.showToast({ title: '賬號(hào)已注冊(cè)!', icon: 'success', duration: 2500 }) }else{ //未注冊(cè) that.saveuserinfo() } } }) }, //注冊(cè)用戶信息 saveuserinfo() { // let that = this; admin.add({ //添加數(shù)據(jù) data:{ name:name, password: password } }).then(res => { console.log('注冊(cè)成功!') wx.showToast({ title: '注冊(cè)成功!', icon: 'success', duration: 3000 }) wx.redirectTo({ url: '/pages/login/login', }) }) }, })
因?yàn)槭褂迷崎_(kāi)發(fā)數(shù)據(jù)庫(kù)所以先在app.js中初始化加入下面這段代碼
下面的fighting1323797232-e05624就是我們?cè)崎_(kāi)發(fā)的環(huán)境id
wx.cloud.init({ env: 'fighting'1323797232-e05624', traceUser: true })
環(huán)境ID在這里
這里需要進(jìn)云數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)adminlist集合
注冊(cè)成功后,開(kāi)始實(shí)現(xiàn)登陸功能
login.wxml
<!--pages/login/login.wxml--> <view> <i-input bind:change='inputName' maxlength="15" title="賬號(hào)" placeholder="請(qǐng)輸入賬號(hào)" /> <i-input bind:change='inputPassword' maxlength="15" title="密碼" placeholder="請(qǐng)輸入密碼" /> <i-button bindtap='login' type="primary">登錄</i-button> <i-button bindtap='register' type="success">注冊(cè)</i-button> </view>
json和以上注冊(cè)的json一樣
js邏輯頁(yè)面實(shí)現(xiàn)如下:
// pages/login/login.js let app = getApp(); // 獲取云數(shù)據(jù)庫(kù)引用 const db = wx.cloud.database(); const admin = db.collection('adminlist'); let name = null; let password = null; Page({ /** * 頁(yè)面的初始數(shù)據(jù) */ data: { }, //輸入用戶名 inputName: function (event) { name = event.detail.detail.value }, //輸入密碼 inputPassword(event) { password = event.detail.detail.value }, //登陸 login(){ let that = this; //登陸獲取用戶信息 admin.get({ success:(res)=>{ let user = res.data; // console.log(res.data); for (let i = 0; i < user.length; i++) { //遍歷數(shù)據(jù)庫(kù)對(duì)象集合 if (name === user[i].name) { //用戶名存在 if (password !== user[i].password) { //判斷密碼是否正確 wx.showToast({ title: '密碼錯(cuò)誤!!', icon: 'success', duration: 2500 }) } else { console.log('登陸成功!') wx.showToast({ title: '登陸成功?。?, icon: 'success', duration: 2500 }) wx.switchTab({ //跳轉(zhuǎn)首頁(yè) url: '/pages/shopcart/shopcart', //這里的URL是你登錄完成后跳轉(zhuǎn)的界面 }) } }else{ //不存在 wx.showToast({ title: '無(wú)此用戶名??!', icon: 'success', duration: 2500 }) } } } }) }, register(){ wx.navigateTo({ url: '/pages/register/index' }) }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 */ onLoad: function (options) { }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成 * 頁(yè)面初次渲染完成時(shí)觸發(fā)。一個(gè)頁(yè)面只會(huì)調(diào)用一次,代表頁(yè)面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互 */ onReady: function () { }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示 * 頁(yè)面顯示/切入前臺(tái)時(shí)觸發(fā) */ onShow: function () { }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面隱藏 */ onHide: function () { }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面卸載 */ onUnload: function () { }, /** * 頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽(tīng)用戶下拉動(dòng)作 */ onPullDownRefresh: function () { }, /** * 頁(yè)面上拉觸底事件的處理函數(shù) */ onReachBottom: function () { }, /** * 用戶點(diǎn)擊右上角分享 */ onShareAppMessage: function () { } })
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用javascript實(shí)現(xiàn)畫(huà)板的代碼
用javascript實(shí)現(xiàn)畫(huà)板的代碼...2007-09-09實(shí)用又漂亮的BootstrapValidator表單驗(yàn)證插件
這篇文章主要為大家詳細(xì)介紹了好用又漂亮的BootstrapValidator表單驗(yàn)證插件,感興趣的小伙伴們可以參考一下2016-05-05不同js異步函數(shù)同步的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇不同js異步函數(shù)同步的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05前端使用axios實(shí)現(xiàn)下載文件功能的詳細(xì)過(guò)程
項(xiàng)目中經(jīng)常會(huì)遇到需要導(dǎo)出列表內(nèi)容,或者下載文件之類(lèi)的需求,下面這篇文章主要給大家介紹了關(guān)于前端使用axios實(shí)現(xiàn)下載文件功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08js去除重復(fù)字符串兩種實(shí)現(xiàn)方法
js去除重復(fù)字符串在項(xiàng)目開(kāi)發(fā)中很實(shí)用,接下來(lái)詳細(xì)介紹實(shí)現(xiàn)方法,感興趣的朋友可以參考下2013-01-01