角色权限把控-后台登录(四)

后台登录

实现后台登录、继承初始化类未登录禁止登录、退出登录
1、提交表单时验证码captcha
2、MD5登录加密判断
3、公共类,后台控制器除了登录类外都继承该初始化类,实现未登录状态下拒绝访问其他控制器

登录功能

控制器

public function index()
    {
        if(request()->isPost()){
            $data =  input('post.');
            //第一步:提交表单时验证码captcha
            if($this->check($data['yzm'])){
                 $MangerModel = new MangerModel;
                 //第二步:MD5登录加密判断
                $num = $MangerModel->login($data);
                 if($num==1){
                     $this->success('登录成功', url('Index/index'));
                 }
                if($num==2){
                    $this->error('密码不对');
                }
                if($num==3){
                    $this->error('用户不存在');
                }
            }else{
                $this->error('验证码不对');
            }
        }else{
            return view();
        }
	}
	//验证码
    public function check($code="")
    {
        $captcha = new Captcha();
        if(!$captcha->check($code)){
            $this->error('验证码不对');
        }else{
            return true;
        }
    }

模型类验证用户名与密码

// 登录
	public function login($data){
		$admin=Manger::getByusername($data['username']);
		if($admin){
            $id=$admin['id'];
			$user=$admin['username'];
			$pass=$admin['password'];
			if($pass==md5($data['password'])){
				// 密码正确
				session('name',$user);
				session('id',$id);
				return 1;
			}else{
				// 密码不正确
				return 2;
			}
		}else{
			// 用户名不存在
			return 3;
		}
	}

前端模板

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<link rel="stylesheet" href="__STATIC__/public/bs/css/bootstrap.min.css">
	<script src="__STATIC__/public/bs/js/jquery.min.js"></script>
	<script src="__STATIC__/public/bs/js/bootstrap.min.js"></script>
	<style>
		.col-md-12{
			height:150px;
		}

	</style>
</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col-md-12"></div>
		</div>
		<div class="row">
			<div class="col-md-4"></div>
			<div class="col-md-4">
				<form class="form-horizontal" action="" method="POST" >
					<div class="form-group">
						<label for="inputEmail3" class="control-label">用户名称</label>
						<input type="text" name="username" class="form-control" id="" placeholder="username">
					</div>
					<div class="form-group">
						<label for="inputPassword3" class="control-label">用户密码</label>
						<input type="text" name="password" class="form-control" id="" placeholder="Password">
					</div>
					<div class="form-group">
						<div><img src="{:captcha_src()}" alt="captcha" /></div>
						<input type="text" class="form-control" id="inputPassword3" placeholder="验证码" name="yzm">
					</div>
					<div class="form-group">
						<div class="col-sm-offset-2 col-sm-10">
							<button type="submit" class="btn btn-default">登录</button>
							<button type="reset" class="btn btn-default">重置</button>
						</div>
					</div>
				</form>
			</div>
			<div class="col-md-4"></div>
		</div>
		<div class="row">
			<div class="col-md-12"></div>
		</div>
	</div>
</body>
</html>

效果图
在这里插入图片描述

未登录禁止访问的前置操作

控制器名Allow.php
_initialize()采用tp内置初始化函数,所有后台类除了login登录类外都继承该类

use think\Controller;
use think\Request;
class Allow extends Controller{
	public function _initialize(){
		if(!session('name') || !session('id')){
			$this->error('请登录',url('Login/index'));
		}
		
	}

}

退出登录功能

// 退出
	public function logout()
    {
		session(null);
		$this->success('退出成功',url('index'));
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值