php实现注销功能,laravel 实现用户登录注销并限制功能

在项目根目录输入: php artisan make:controller Admin/LoginController

fb14b6e8616dbb941025cd5e68ed3312.png

php artisan make:model Model/Admin -m

f2126f33c8aa208e3d41e7521176b6a8.png

运行之后 项目中会新增两个PHP文件

1052426a6d918911e13bcceb95787e60.png

新创建了admins用户表,此用户表默认新建中只有主键,创建时间,编辑时间。我们接下来新加两个字段 用户名(username)

和密码(password).

f3dd078790da676f1655a6cc80030488.png

在up函数中加上这两个字段,后面可以按自己的需求添加属性。

laravel默认的字符集是utf8mb4,新增的数据库字段会有这个字符集,想要改成utf8 可以直接修改datebase

ef8834b259a5fbb53941dba20fcf3665.png

接下来运行数据迁移命令 php artisan migrate 来创建数据表

3c6547d901fcee90b98f37de05fe2237.png

运行之后数据库中新增了admins表

7c850bc8fcd48d7a9ea5a86b2b6c795e.png

3.填充数据

因为还没有做注册所以我们利用tinker来表中填充数据,如果已经做了注册功能就不用坐下面的步骤了,也可以直接运行sql,直接

填充,保证密码加密。

首先在配置中添加想要新增的数据。在datebase/factories/

c45506eaaf42536598bd09023ca0a80f.png

define方法里面写自己的用户模块的命名,里面加上默认密码。

4f24ec72a9487197dbe607ee1fc40131.png

之后运行php artisan tinker 命令 里面输入 factory(模块命名,条数);

运行之后数据库中新增了三条数据,实例中密码都是admin。

cea4da344c88412d1b19cbf6c5e8bf9f.png

4.用户登录配置

首先在config/auth.php中添加配置,框架默认都是走的自带的User模块。

dd79a21af932d5d2bb15a4f75a128a03.png

加上图中的两个配置,命名按照自己的模块名字来命名。

修改模块继承函数跟系统的自带的User.php一样就可以了。

4111487366e6f6a7378b4c90378f548c.png

5.登录函数

这里先略过前段页面的表单的写法以及表单提交的方式,直接获取数据的函数来写。

$statue = Auth::guard('admin')->attempt([

'username'=>$request->input('username'),

'password'=>$request->input('password'),

]);

以上就是登录函数,guard函数中写入自己在auth.php配置中写的命名。指定用户登录的表。

4880dd20527a3551e098a8015c062e1c.png

在前段页面中获取的时候也要指定命名。

cea92f64c761d7280e479338e5a00706.png

6.限制页面权限

后台登陆首页之前判断是否登陆,如果没有登录则跳转到登录页。

首先做一个中间件,让每个页面控制器运行之前先运行中间件,我们在中间件中写一些页面是否有权限访问的动作。

0fb2508a002c4951898f08de143b5cb2.png

运行之后里面填写验证指定的表用户是否登陆

f28ab1740925183183f9c7870dd5a0f8.png

之后我们在kernel.php中添加中间件

6ce5fc52920e08d6685ca15ae166c9b7.png

我们在登录的控制器中调用,并指定哪个函数不需要限制。

628448cd7fe587fc0c901e7905a43a72.png

7.注销

07de22903f1b61e5cc0da2ec4bb86a90.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将ipynb文件转为py的简单方法(图文并茂)

打开可以使用jupyter命令的命令窗口(如果没有jupyter则需要先安装jupyter),cd 命令进入到 ipynb 文件所在的文件夹,执行 jupyter nbconvert --to script xxx.ipynb 即可完成 ipynb 文件到 py 文件的转化,执行 jupyter …

学习Spring Boot:(二十八)Spring Security 权限认证

前言 主要实现 Spring Security 的安全认证,结合 RESTful API 的风格,使用无状态的环境。 主要实现是通过请求的 URL ,通过过滤器来做不同的授权策略操作,为该请求提供某个认证的方法,然后进行认证,授权成…

在PHP中如何要json中的数据,如何在不知道键值的情况下在php中读取JSON数据

我需要在php中读取firebase JSON URL然后显示它.我的firebase得到了以下.json数据:{"dDsdE4AlB7P5YYd4fWbYTQKCLPh1":{"email":"abhigmail.com","name":"abhishek"},"z1ceiLhdh9YVu7lGnVvqDWoWHFH3":{…

oracle 分区字符转换,Oracle 普通表与分区表转换

oracle 9i提供了dbms_redefinition包来实现数据库的表的在线重定义功能。在实际的应用上,我们可以利用这个包来进行:(1)堆表与分区之间进行转换。(2)重建表以减少HWM。10g能shrink,9i如果用move tablespace and rebuild index在move的时候会锁…

Java中使用有返回值的线程

在创建多线程程序的时候,我们常实现Runnable接口,Runnable没有返回值,要想获得返回值,Java5提供了一个新的接口Callable,可以获取线程中的返回值,但是获取线程的返回值的时候,需要注意&#xff…

Mybatis 插入时获取主键的方式

mybatis 作为一个主流的 ORM 框架,深受广大开发者的喜爱。有人的地方就有江湖,有代码的地方自然有坑,下面来说说获取 mybatis 的插入后返回的主键。 我们可以想一下自动增长的主键特性,在数据库里面肯定有某个地方管理 ID 的自增…

linux脚本怎么把文件地址变成动态地址,Linux脚本程序自动修改网卡配置文件中的MAC地址...

在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了。virtual HDD加载到虚拟机后,新的虚拟机的MAC地址就会和virtual系统中ifcfg-eth[0-9]中的MAC地址不…

MySQL + MyBatis 批量插入时存在则忽略或更新记录

一、存在时则忽略 为什么在发现重复时会忽略?这里面涉及到两个地方。 1、重复则忽略。那么首先是需要判断是否重复,这里是通过唯一索引判断是否重复的。如果表中唯一索引的字段已经存在与将要插入的记录行中唯一索引的字段值相同,则标识为重…

Linux 目录所属组设置,Linux系统用户与组管理命令及配置文件总结

一、Linux系统用户及组分类1、用户类别Linux系统中的用户大致可分为三类:root用户、系统用户、普通用户。每一个用户都拥有一个唯一的身份标识UID。2、组分类与用户信息对应的,Linux系统中的组也可分为三类:root组、系统组、普通组。每一个组…

linux 字符串 空,linux – bash空字符串/命令

你似乎把bash与其他一些编程语言混淆了.变量被替换,然后左边的内容被执行."$a"这是引号之间的a的内容. a是空的,所以这相当于:""那不是命令. “没有找到指令.”由于存在错误,执行不成功(shell返回代码不为0),因此命令的后半部分 – && …

@GetMapping和@PostMapping详解

首先要了解一下RequestMapping注解。 RequestMapping用于映射url到控制器类的一个特定处理程序方法。可用于方法或者类上面。也就是可以通过url找到对应的方法。 RequestMapping有8个属性。 value:指定请求的实际地址。 method:指定请求的method类型&…

实验楼 linux内核原理与分析,《Linux内核原理与分析》第一周作业 20189210

实验一 Linux系统简介这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别。其中学到了LInux中的应用程序大都为开源自由的软件,用户可以修改定制再发布;内核是实现多任务运行和硬件管理的…

MySQL的INSERT INTO··· ON DUPLICATE KEY UPDATE使用的几种情况

保存或更新 在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复…

linux svn 指定端口号,linux(Ubuntu)搭建Subversion服务器+修改svn端口号

一、搭建 Subversion 服务器1、首先需要安装 subversion 这个软件:sudo apt-get install subversion注:使用apt-get安装软件,ubuntu默认将软件下载到 /etc/bash_completion.d/ 目录下,可使用 sudo apt-get source packagename 下载…

java8 Stream API详解

文章目录一、Stream流概述二、创建Stream的方式相关API三、Stream的中间操作筛选与切片映射排序四、终止操作第一大类API(太过简单)第二大类AP归约收集一、Stream流概述 1、java8中有两大最为重要的改变,第一就是Lambda表达式,另…

linux实验3编写内核模块,实验2.3_内核模块_实验报告

实验报告题目: 内核模块实验1、实验目的模块是Linux系统的一种特有机制,可用以动态扩展操作系统内核功能。编写实现某些特定功能的模块,将其作为内核的一部分在管态下运行。本实验通过内核模块编程在/porc文件系统中实现系统时钟的读操作接口。2、实验内…

Java 8 Stream Api 中的 peek、map、foreach区别

#1. 前言 我在Java8 Stream中讲述了 Java 8 Stream API 的一些内容。今天再看一下peek、map、foreach区别。 2. peek peek 操作接收的是一个 Consumer 函数。顾名思义 peek 操作会按照 Consumer 函数提供的逻辑去消费流中的每一个元素,同时有可能改变元素内部的一…

linux驱动日志格式,( 转)嵌入式Linux驱动Makefile

天气: 晴朗心情: 高兴( 转)嵌入式Linux驱动开发笔记1.1 模块的编译Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式。简单的例子,Begin of hello.c file#include #include #include static int __init test_init(void){pr…

Java 8 Stream 流用法及语法

Java 8 Stream 流用法 1.简介 Stream流 最全的用法 Stream 能用来干什么?用来处理集合,通过 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询,Stream API 提供了一种高效且易于使用的处理数据的方式 为什…

wapper打成linux服务,Wrapper配置详解及高级应用(转)

转自:http://286.iteye.com/blog/1921414将一个简单的程度如HelloWorld 的应用包装秤Wrapper 服务并不复杂,甚至可以认为非常简单。但是实际项目应用过程中我们的程序一般较庞大,运行环境也较复杂。通过Wrapper 配置文件的分析与配置进一步了…