auth登录 展示 中间件

本文档详细介绍了如何使用laravel框架搭建后台系统,包括安装laravel、配置开发环境,设计并填充管理员表,实现登录、退出功能,并通过中间件验证用户登录状态。还涉及了faker生成测试数据、邮件发送、数据库配置和本地化设置。

好客租房_01
今日目标9
能够使用composer创建项目
能够实现git管理源代码
能够设计管理员表
能够使用faker生成管理员测试数据
能够实现登录功能

了解laravel发送邮件配置
能够实现中间件验证用户是否登录

//注册执行
    public function  added(Request $request){
        //接收数据
        $data['username'] = $request ->input('username');
        $data['password'] = $request ->input('password');
        $data['password'] = bcrypt($data['password']);
        $res = login::insert($data);


        \Mail::raw('测试发邮件',function (\Illuminate\Mail\Message $message){
            $message->to('402437420@qq.com','lly');
            $message->subject('注册成功邮件通知');
        });
        if ($res){
               return '注册成功';
        }
            return '失败';
    }

能够实现退出功能
能够管理员表的增删改查功能

一、项目概述
1.1、项目背景
好客租房系统为了方便出租者及时的发布租房信息和租房者及时获得一手房源,通过实名认证两方信息,解决房屋租赁过程中虚假房源泛滥、黑中介横行、租客和房东之间缺乏信任问题。同时平台通过房东直租,减少中间环节产生的费用,提高房东与租户匹配的成功率。
1.2、知识点
后台系统基于PHP7.x+Laravel5.x构建
引入Swoole异步网络通信引擎
采用RestFulapi接口通信
引入vuejs数据显示解决方案
使用Redis缓存和消息队列服务
接入地图开放平台服务
引入echarts可视化数据图形
引入ES解决方案实现高速检索
使用版本控制进行源代码管理
实现发送邮件
导出excel功能
异步头像上传
富文本添加与展示
二、安装与运行项目
2.1、安装laravel项目

安装laravel

composer create-project --prefer-dist laravel/laravel www.zfw.com

安装phpstorm开发插件

composer require barryvdh/laravel-ide-helper
安装laravel框架
在这里插入图片描述
在这里插入图片描述

安装插件
在这里插入图片描述
在这里插入图片描述

执行此命令
在这里插入图片描述

到此phpstorm就更加友好的支付laravel开发.
2.2、运行项目
2.2.1、配置虚拟主机与绑定hosts文件
使用apache做为本机开发运行laravel项目的web服务器

<VirtualHost *:80>
	# 设置网站目录
	DocumentRoot "F:\www\class\web\www.zfw.com\public"
	# 设置网站域名
	ServerName www.zfw.com
	# 一定要设置日志,日志可以访问我们进行系统统计
	# 日志是目录不会自动创建需要手动创建,文件是会自动创建
	# 错误日志
	ErrorLog "F:\www\class\web\www.zfw.com\logs\error.log"
	# 成功日志
	CustomLog "F:\www\class\web\www.zfw.com\logs\access.log" combined
	# 设置目录访问权限
	<Directory "F:\www\class\web\www.zfw.com\public">
	    # 指定目录启用特性
	    Options Indexes FollowSymLinks 
	    # 是否允许使用.htaccess文件
	    AllowOverride All
	    # 访问目录权限 apache2.4
	    Require all granted
	</Directory>
</VirtualHost>

在这里插入图片描述

hosts绑定下
在这里插入图片描述

一定要重启web服务器,使其配置生效
在这里插入图片描述

2.2.2、配置数据库连接
在项目.env文件中进行相对应的配置设置

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=wwwzfwcom
DB_USERNAME=root
DB_PASSWORD=root
DB_PREFIX=zfw_

第1步:新建数据库
在这里插入图片描述

第2步:配置laravel中连接数据库配置

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

2.2.3、本地化配置
配置config/app.php文件进行时区、faker和验证本地化配置

# 时区
'timezone' => 'PRC',
# 验证提示中文
'locale' => 'zh-CN',
# faker中文
'faker_locale' => 'zh_CN',

时区
在这里插入图片描述

验证中文
https://github.com/caouecs/Laravel-lang/tree/master/src
在这里插入图片描述
在这里插入图片描述

faker本地化
在这里插入图片描述

2.2.4、删除默认文件或目录

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

三、后台登录
命令提示

3.1、管理员表设计
创建生成模型和迁移文件
php artisan make:model Models/User -m

执行迁移文件

3.2、faker批量添加用户
创建用户的数据填充文件
php artisan make:seeder UserSeeder
修改模型

生成一个数据工厂
php artisan make:factory UserFactory -m Models/User

数据填充文件修改

修改总调用

执行填充
php artisan db:seed

注:迁移文件中字段可能设置有点短,可能填充不成功,此时,就需要修改一下数据字段长度,然后执行
php artisan migrate:refresh --seed

3.3、实现登录
使用laravel提供一个登录方法 auth()登录

// 登录  返回true 或 false
auth()->attempt([数组 账号和密码]);
// 检查是否登录  true/false
auth()->check(); 
// 登录成功得到用户信息
auth()->user()  // 用户模型

修改用户模型的父类
在这里插入图片描述

配置config/auth.php文件
在这里插入图片描述

3.3.1、登录界面显示
让路由定义分层

分层定义后台的路由文件
在这里插入图片描述

在routes/web.php路由文件中引入自定义分层的路由文件
在这里插入图片描述

创建控制器和对应的方法
定义模板
在这里插入图片描述

模板
在这里插入图片描述
在这里插入图片描述

3.3.2、实现登录
表单验证
在这里插入图片描述

前台的显示
让验证提示独立出来
在这里插入图片描述

在想要显示的模板页面中引入 @include
在这里插入图片描述

效果
在这里插入图片描述

实现登录PHP代码编写
在这里插入图片描述

注:账号和密码的字段名一定要用 username和password 用auth方法来登录

四、后台首页
4.1、后台首页展示
创建后台控制器和对应的模板
后台首页显示控制器

定义后台首页显示的路由

模板

效果

修改登录代码
在这里插入图片描述
在这里插入图片描述

4.2、用户退出
退出就是清空session的过程

auth()->logout();

定义退出路由
在这里插入图片描述

在后台首页控制器中实现退出
在这里插入图片描述

定义消息提示的模板
在这里插入图片描述

在登录界面中引入消息提示
在这里插入图片描述

效果
在这里插入图片描述

一、中间件防用户翻墙
中间件为过滤进入应用程序的 HTTP 请求提供了一种方便的机制。
中间件就是路由和控制器之间的中间人
创建中间件

php artisan make:middleware 中间件名称
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213702259.png#pic_center)


创建成功的中间件文件所在位置:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213707775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

注册中间件
全局中间件
路由中间件
全局中间件,一但注册,所有的请求都将生效
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213716126.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

路由中间件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213721993.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

绑定路由中间件

绑到指定的路由
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213736724.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

给路由分组绑定
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213741452.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

在控制器中绑定
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213748946.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

中间件传参
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213754814.png#pic_center)

获取中间件传过来参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213802805.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

实现后台用户防翻墙
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213807385.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

二、管理员管理
2.1、用户列表展示

创建控制器
php artisan make:controller Admin/UserController

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213817776.png#pic_center)

定义用户列表路由
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102821382227.png#pic_center)

创建基础控制器,定义分页数量
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213825980.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

用户控制器
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213831342.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

在config目录手动创建一个page.php文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213835255.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

模板
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213839392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028213843253.png#pic_center)

2.2、添加用户
定义添加用户的路由

定义一个用于模板继承的模板

前端验证,使用jquery.validate插件来验证
https://www.runoob.com/jquery/jquery-plugin-validate.html
此插件依赖与jquery,先引入jquery
再次引入如下文件




效果

自定义验证规则,定义一个验证手机号码是否合法

统一定义自定义规则的提示信息

提示字段名的设置

在控制器中实现表单验证
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201028214221651.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXBocGdvb29v,size_16,color_FFFFFF,t_70#pic_center)

2.3、删除用户
在模板中实现不能自己删除自己的按钮出现

定义删除的路由

前端代码模板编写



软删除
第1条件:表中必须有一个软删除标识字段

第2条件:模型中引入对就的操作 (trait) 实现多继承
第3条件:模型中指定软删除的标识字段

到此原来的delete删除就变成了软删除,不会删除真实数据

效果

2.4、恢复用户
列表中显示所有的用户包括已删除用户


定义还原路由

控制器中实现还原

2.5、全选删除
定义全选删除的路由

在控制器中实现全选删除

模板编写js



2.6、给新用户发送邮件
phpmailer 也是一种解决发送类,当然laravel自带就能发邮件的类
给刚刚添加成功的用户发送一封邮件
邮件发送类  Mail 类
文本
静态方法 raw();

富文本
静态方法 send()
实现发送邮件,必须一个发送邮件的账号,需要开启stmp协议,现在主流的邮件服务器都是支持,stmp默认端口25,但是它们默认没有打开,需要使用时,自行打开。
以QQ邮箱为例:  https://mail.qq.com



得到相关的配置信息
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371

配置laravel发送邮件配置

发送文本邮件

发送富文本邮件

模板

效果

在添加新用户控制器中实现邮件发送

2.7、修改用户信息
定义路由

控制器中实现用户修改


模板


效果

















三、RBAC
RBAC: role  base  access  control  基于角色的用户访问权限控制权限,就是权限分配给角色,角色又分配给用户。
即一个用户对应一个角色,一个角色对应多个权限
3.1、角色与权限表的设计


3.2、权限管理
3.2.1、权限列表

3.2.2、添加权限

3.2.3、修改权限


3.2.4、删除权限




3.3、角色管理
3.3.1、角色列表

3.3.2、角色添加

3.3.3、修改角色














评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值