微信小程序可以使用授权登录来获取用户的信息,免打扰的操作让用户省了不少心,但是开发者在设计登录和注册的页面时,总是避免不了使用数据库,而且后续还需要从云开发控制台的数据库中获取用户信息,因此登录和云开发控制台数据库相结合的操作十分适合初入门微信小程序接触后台的开发者。
1.登陆界面的设计
login.wxml
代码如下:
<view class="content">
<view class="account">
<view class="title">账号</view>
<view class="num"><input bindinput="inputName" placeholder="用户名" placeholder-style="color:#999999;"/></view>
</view>
<view class="hr"></view>
<view class="account">
<view class="title">密码</view>
<view class="num">
<input bindinput="inputPassword" placeholder="请输入密码" password/></view>
</view>
<view class="hr"></view>
<button class="btn" type="primary" bindtap="login">登录</button>
</view>
login.wxss
代码如下:
.content{
margin-top: 40px;
}
.account{
display: flex;
flex-direction: row;
padding-left: 20px;
padding-top: 20px;
padding-bottom: 10px;
width: 90%;
}
.title{
margin-right: 30px;
font-weight: bold;
}
.hr{
border: 1px solid #cccccc;
opacity: 0.2;
width: 90%;
margin: 0 auto;
background-color: red;
}
.btn{
width: 90%;
margin-top:40px;
color: #999999;
}
示例界面图如下:
2.云开发控制台内预先设定好账号与密码
1.打开云开发控制台(还没有注册过云开发控制台的开发者,可以百度如何注册云开发控制台获取环境ID)
2.设置好账号和密码
选择数据库,点击添加集合的“+”号,给自己的集合取一个名字,我这里的名字叫做user。点击添加记录,数据库会自动生成一个id,点击添加字段,设置好自己的账号和密码就行了。
3.登陆界面的JS
在上面的login.xml里,当用户按下绿色按钮进行登录时,后台就会把数据发送到数据库进行校验,而负责传送数据的JS函数就是——login()
代码如下:
login.js
// pages/login/login.js
let app = getApp();
// 获取云数据库引用
const db = wx.cloud.database();
const admin = db.collection('user');//注意,这里就是刚才的集合的名字——user
let name = null;//变量,用于存放用户输入的账号
let password = null;//变量,用于存放用户输入的密码
Page({
/**
* 页面的初始数据
*/
data: {
},
//输入用户名
inputName: function (event) {
name = event.detail.value//将用户输入的账号放到变量里面
},
//输入密码
inputPassword(event) {
password = event.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++) { //遍历数据库对象集合
if (name === user[i].account) { //用户名存在
if (password !== user[i].password) { //判断密码是否正确
wx.showToast({
title: '密码错误!!',
icon: 'none',
duration: 2500
})
} else {
console.log('登陆成功!')
wx.showToast({
title: '登陆成功!!',
icon: 'success',
duration: 2500
})
wx.switchTab({
url: '/pages/index/index',//这里是成功登录后跳转的页面
})
}
} else { //不存在
wx.showToast({
title: '无此用户名!!',
icon: 'none',
duration: 2500
})
}
}
}
})
}
})
最后实际效果就是这样啦。