Laravel 实现前后台用户分离登录
在很多时候,我们需要前台和后台进行不同的登录操作,以限制用户权限,现在用 Laravel 实现这个需求。
前戏
一、获取 Laravel
这个在文档中都有说明的,也比较简单,可以使用 composer 下载(我下载的时候是有些慢),我就复制之前下载好的空项目。
二、修改配置文件
在这一步我只修改了 .env 文件中的数据库配置。
三、运行项目
在项目根目录,运行
php artisan serve

在浏览器中输入 http://127.0.0.1:8000 访问自己的项目。
进入正题
有两种方式实现前后台用户的分离登录,使用两个数据表或者使用一个数据表。
一、使用两个表(前台用户表和后台用户表)
1、创建数据表
在项目根目录运行
php artisan make:migration create_users_table
执行上面的命令会在 database/migrations 目录下生成迁移文件 xxxx_create_users_table.php,这个文件在下载项目的时候是有的,可以直接修改,当然,多生成一个也没有关系吧。
修改 xxxx_create_users_table.php 文件(如果已经执行了上面的命令,修改的时候注意文件 xxxx 部分的日期,不要改错了)。

这里我多加了一个字段,用来判断用户是否允许登录。
在修改完成之后执行迁移。
php artisan migrate
执行成功后,会在配置好的数据库中生成对应的表
users 表就是我们要用到的前台用户表,然后用同样的方法,生成一个后台用户表
php artisan make:migration create_admins_table
修改 xxxxx_create_admins_table.php 中的内容
php artisan:migrate
到这里,两个数据表就完成了。
2、实现基本的登录
这时会看到 app 目录下多了 User.php。
改为:
打开 config 文件夹下的 auth.php

然后打开 Http/Controllers 文件夹,里面多了一个 Auth 文件夹,里面有我们注册登录使用的控制器。
为:
这时刷新浏览器页面,会发现跳转到了登录界面,当然,目前用户表中没有添加任何数据,现在向用户表中添加数据:
php artisan make:seeder UsersTableSeeder
运行成功之后,会在 database/seeds 目录下生成 UsersTableSeeder.php 文件,打开这个文件,在 run 这个方法中添加下面的内容:
然后打开 DatabaseSeeder.php,在里面添加:
完成编写之后,运行 composer dump-autoload
查看数据表:
刚才新建的用户已经存在了,这时进行登录,发现可以成功访问。
3、实现前台用户的稍复杂登录
和 attempt 方法中的:
(3)在 resources/lang 文件夹 en 文件夹中,打开 auth.php,在数组中添加:
'active' => 'This account is not allowed to login.'
(4)修改 blade 模板文件:
然后再次使用之前的账号密码登录,发现会提示错误信息:
4、实现后台用户登录(前后台分离登录)
并在控制器中添加 index 方法
在上面可以看到,我们使用的中间件还是 auth ,这就会和前台登录一样一样的了,可现在是后台登录呀。
php artisan make:middleware AuthAdmin
修改内容为:
php artisan make:middleware GuestAdmin
修改内容为:
(5)打开 Http 目录下的 Kernel.php 文件,在 routeMiddleware 中添加:
现在修改之前的路由:
现在如果直接访问 127.0.0.1:8000/admin 会提示 LoginController 不存在,我们复制 Auth 文件夹下的 LoginController 到 Controllers 目录,也可以新建。
新建视图文件 login.blade.php,复制 auth 文件夹下的 login.blade.php 到 当前视图文件,去掉 checkbox,修改提交地址为 route('admin.login'),保存。
二、一个表实现(同一个表,使用字段进行区分)
3、修改 route 文件
4、修改 LoginController.php 文件
删除 guard 方法,添加 credentials 方法
目前来说已经基本实现了单表的前后台登录,但是现在是有 bug 的。
在视图层中显示错误信息。
OVER!
Laravel 实现前后台用户分离登录的更多相关文章
- YII2.O学习三 前后台用户数据表分离
之前我们完成了Advanced 模板安装,也完成了安装adminlte 后台模板,这一步是针对前端和后台用户使用不同的数据库表来管理,做到前后台用户分离的效果: 复制一张user数据表并重命名为adm ...
- php的laravel框架快速集成微信登录
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...
- 前后台彻底分离的核心文件bridge.js.
具体代码可以在我的git上下载:https://github.com/guoyansi/bridge 这里的后台使用java写的,如果不了解java的童鞋可以忽略下面这样图片. bridge.js / ...
- laravel 的passport Oauth 认证登录请求 的 oauth_token 重置
laravel 的passport Oauth 认证登录请求 的 oauth_token 重置 使用API登录认证是需要获取访问令牌,方法为: 参数: grant_type —— 密码模式固定为 ...
- (html)前端如何验证token的合法性来判断用户是否登录?
问题: (html)前端如何验证token的合法性来判断用户是否登录?描述: 1.我使用了JWT的方式,后端生成了一个token,将其返回给前端,前端获取到后每次请求接口都附带上这个token,后端来 ...
- laravel jwt 做API 退出登录(注销) 该怎么弄? 如何让token失效
laravel jwt 做API 退出登录(注销) 该怎么弄? 如何让token失效 php框架 laravel 2.1k 次浏览 问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键 ...
- beego 前后端分离登录验证
conf>app.conf 文件添加一下参数 copyrequestbody=true sessionon =true routers>router.go 文件添加初始化路由 func i ...
- laravel如何实现多用户体系登录
laraveli添加一个或多个用户表,以admin为例. 部分文件内容可能需要根据实际情况修改 创建一个Admin模型 php artisan make:model Admin -m 编写admins ...
- 七:Spring Security 前后端分离登录,非法请求直接返回 JSON
Spring Security 前后端分离登录,非法请求直接返回 JSON 解决方案 在 Spring Security 中未获认证的请求默认会重定向到登录页,但是在前后端分离的登录中,这个默认行为则 ...
随机推荐
- 解析node-cors模块
(function () { 'use strict'; var assign = require('object-assign'); var vary = require('vary'); var ...
- 出现:Microsoft Visual C++ 14.0 is required 的解决方案
以安装pandas为例: 如:pip install scrapy 时出现: error: Microsoft Visual C++ 14.0 is required. Get it with “Mi ...
- C/C++ 交换两个数,不使用第三个变量, 函数模板来实现
#include <iostream> template<typename T> void exchangeTwoNumber(T &t1, T &t2): v ...
- java 调用腾讯身份OCR接口文档实例(绝对可用)
1.情景展示 通过读取身份证照片上的信息,实现自动填充功能. 2.原因分析 想要解析照片上所携带的相关信息,就需要识别照片的功能,腾讯提供了免费的身份证OCR接口,可供大家使用. 没有耐心的可以直 ...
- 微服务异步架构---MQ之RocketMQ
“我们大家都知道把一个微服务架构变成一个异步架构只需要加一个MQ,现在市面上有很多MQ的开源框架.到底选择哪一个MQ的开源框架才合适呢?” 一.什么是MQ?MQ的原理是什么? MQ就是消息队列,是Me ...
- Linux安装vim,解决vim: command not found
1,输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim vim-enhanced-7 ...
- 【Activiti学习之七】BPMN子流程、顺序流、流程关口
环境 JDK 1.8 MySQL 5.6 Tomcat 7 Eclipse-Luna activiti 6.0 一.子流程 1.嵌入子流程2.调用子流程3.事件子流程4.事务子流程 二.顺序流1.条件 ...
- SVN与GIT工具使用对比
版本工具 差异 svn git 系统特点 1.集中式版本控制系统(文档管理很方便) 2.企业内部并行集中开发 3.windows系统上开发推荐使用 4.克隆一个拥有将近一万个提交(commit),五个 ...
- c# 数据请求方式提供
营销平台数据请求介绍 项目介绍: 前端使用 WPF,采用MVVM模式 后端数据库采用的sqlite 依靠本地化运行 后期可能会采用WebApi 因为WPF都是自学的 所以 代码方面写的可能不 ...
- Java爬虫利器HTML解析工具-Jsoup
Jsoup简介 Java爬虫解析HTML文档的工具有:htmlparser, Jsoup.本文将会详细介绍Jsoup的使用方法,10分钟搞定Java爬虫HTML解析. Jsoup可以直接解析某个URL ...