
Laravel 6 内置 web 认证
发布日期:2025-04-04 02:15:19
浏览次数:13
分类:精选文章
本文共 1762 字,大约阅读时间需要 5 分钟。
Laravel 认证系统详解
1. 登录与注册原理
在 Laravel 中,用户登录和注册均依赖于会话(Session)机制。具体流程如下:
注册:用户完成注册后,服务器端生成一个 session 文件,并将文件名返回给用户。
登录:用户使用账号密码登录成功后,服务器端同样生成 session 文件,并将文件名返回用户。
认证:在后续请求中,前端传递 session 文件名,服务器使用该文件名查找对应的文件进行认证。如果存在有效文件认证成功,否则失败。
2. 系统准备
安装 Laravel 开发环境,并设置数据库:
composer create-project --prefer-dist laravel/laravel 6cd your-appnpm installcnpm install --global --registry=https://registry.npm.taobao.orgcnpm installphp artisan migrate
建议可在 config/app.php
中禁用注册功能:
Auth::routes(['register' => false]);
3. 验证与认证优化
登录跳转优化
可通过LoginController
定义 redirectTo
属性或方法,灵活设置登录成功后的跳转地址: protected function redirectTo(){ return '/path'; // 或直接调用路由}
自定义认证字段
定义认证字段为username
(默认为 email
): public function username(){ return 'name';}
获取用户信息
过程中可使用Auth::user()
获取当前登录用户信息。 中间件应用
添加中间件到指定路由或控制器:Route::get('profile', function () { // ...})->middleware('auth');
权限控制
使用can:action
middleware 定义路由权限: Route::get('/settings/security', function () { // ...})->middleware('can:settings,security');
4. 拦截机制
Laravel 提供完整的认证拦截机制,可灵活配置:
失败次数限制
默认禁止登录的次数为5次,有效时间为1分钟,判断依据包含username
及 ip
。 退出操作
调用Auth::logout()
进行退出。 过期时间管理 自定义会话过期时间:
config()->set('session.lifetime', 120);
5. 自定义认证
若需要自定义认证逻辑,可移除默认控制器,实现 Auth facade
:
only('email', 'password'); if (Auth::attempt($credentials)) { return redirect('/some/url'); } }}Route::post('/authenticate', 'Auth\LoginController@authenticate')->name('authenticate');
6. 记住用户
用户可选择记住登录信息,通过 Auth::remember()
实现:
if (Auth::attempt(['email' => $email, 'password' => $password], true)) { // 记住登录信息}
或者直接调用:
Auth::login($user); // 可选无限期存存储
7. 弹窗验证
若无需传统登录页面,可通过弹窗实现认证:
willing: implement via JS -->
8. 设备独识别
实现跨设备登录唯一性:
Auth::logoutOtherDevices($password);
以上配置均可实现灵活的认证管理,适用于多种应用场景。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月18日 16时08分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode经典——70.爬楼梯&&509.斐波拉契数列
2025-04-05
Leetcode经典系列——LRU最近最少使用机制
2025-04-05
LeetCode美团专场——第203场周赛题解
2025-04-05
LeetCode蔚来专场——第208场周赛题解
2025-04-05
leetcode题解-买卖股票的最佳时机
2025-04-05
leetcode题解102-二叉树的层序遍历
2025-04-05
leetcode题解102-翻转二叉树
2025-04-05
leetcode题解104- 二叉树的最大深度
2025-04-05
leetcode题解108-将有序数组转换为二叉排序树
2025-04-05
leetcode题解118-杨辉三角
2025-04-05
leetcode题解131-分割回文串
2025-04-05
leetcode题解136-只出现一次的数字
2025-04-05
leetcode题解14-最长公共前缀
2025-04-05
leetcode题解15-三数之和(双指针经典)
2025-04-05
leetcode题解151-翻转字符串里的单词
2025-04-05
leetcode题解153-寻找旋转排序数组的最小值
2025-04-05
leetcode题解167-两数之和 II - 输入有序数组
2025-04-05
leetcode题解172-阶乘后的零
2025-04-05
leetcode题解173-二叉搜索树迭代器
2025-04-05
leetcode题解189-旋转数组
2025-04-05