业务逻辑:

1、实现登录、注册、忘记密码功能

2、请求后台时,传递的参数加密

3、手机号、密码发给后端时,加密处理

 代码较多,贴一个登录页面的
<template> <view> <!-- 1 logo --> <view class="logo"> <image
src="../../static/image/wx.png"></image> </view> <!-- 2 登录信息 --> <form
@submit="doLogin"> <view class="login-info"> <view class="item"> <image
src="../../static/image/login_tel.png"></image> <input name="mobile"
type="number" placeholder="请输入手机号" maxlength="11"></input> </view> <view
class="item"> <image src="../../static/image/login_pwd.png"></image> <input
name="password" password placeholder="请输入密码(6~15位)" maxlength="15"></input>
</view> <view class="item"> <text class="font-gray">登录代表您已同意</text> <navigator
class="color-green" url="/pages/agreement/agreement">《用户服务协议》</navigator>
</view> </view> <!-- 3 登录按钮 --> <button formType="submit" class="big-btn"
lang="zh_CN">登录</button> </form> <!-- 4 辅助操作 --> <view class="login-opts
font-gray"> <navigator url="/pages/register/register?type=0">快速注册</navigator>
<navigator url="/pages/register/register?type=1">忘记密码?</navigator> </view>
</view> </template> <script> import sha from '../../common/sha256.js'; export
default { data() { return { mobile: '', password: '', navUrl:'' } },
onLoad:function(options){ let navUrl = options.navUrl; if (navUrl != null &&
navUrl != undefined && navUrl != '') {//其他界面传递过来url this.navUrl=navUrl }else{
this.navUrl='' } }, methods: { // 登录验证 doLogin: function(e) { let param =
e.detail.value //提交时得到用户名、密码 this._mysubmit(param) }, // 验证我的提交信息{mobile: "",
password: ""} _mysubmit: function(param) { let mobile = param.mobile.trim() let
password = param.password.trim() let flag = this._checkMobile(mobile) &&
this._checkPassword(password)//校验 if (flag) { this._checkUserInfo(param); } },
// 校验用户名 _checkMobile: function (param) { let regFlag =
this.$util.checkMobile(param) let telLens = param.length if (telLens === 0) {
this.$request.setErrorMessage('手机号不能为空') } else if (telLens < 11) {
this.$request.setErrorMessage('手机号长度错误') } else if (!regFlag) {
this.$request.setErrorMessage('手机号格式错误') } else { return true } }, // 校验密码
_checkPassword: function (param) { let pwdLens = param.length; if (pwdLens ===
0) { this.$request.setErrorMessage('密码不能为空') } else if (pwdLens < 6) {
this.$request.setErrorMessage('密码长度不能小于6位') }else{ return true } }, // 检查用户信息
param={mobile: "", password: ""} _checkUserInfo: function(param) { let password
= sha.sha256(param.password.trim()) param.password = password
this.gotoLogin(param); }, gotoLogin(param){ this.$request.setRequest('/login',
param) .then(res => { if (res.data.status == 1) {//成功 let userInfo =
res.data.data this.$common.setGlobalUserInfo(userInfo)//goto应该是后端返回的用户信息{} //
记录登录成功时间戳 let timestamp = new Date().getTime();
this.$common.setLogintimeInfo(timestamp);
this.$request.setErrorMessage(res.data.msg) // 跳转到登录界面 let navUrl =
this.navUrl; if (navUrl != null && navUrl != undefined && navUrl != '')
{//其他界面传递过来url uni.switchTab({ url: '/pages/' + navUrl, }) } else {
uni.switchTab({ url: '/pages/mine/mine' //参数只能是字符串形式,不能为json对象 }) } } else if
(res.data.status <1){ this.$request.setErrorMessage(res.data.msg) }else{
this.$request.setErrorMessage() } }) }, } } </script> <style> @import
'login.css'; </style>
 

技术
今日推荐
PPT
阅读数 128
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信