本文共 2287 字,大约阅读时间需要 7 分钟。
现代 web 应用的用户认证通常采用 session 技术,将用户的登录信息存储在服务器端 session 文件中。在 Laravel 中,用户注册或登录成功后,服务器会生成 session 文件,并将文件名返回给客户端。客户端在后续请求中通过传递 session 文件名,向服务器端验证 session 是否有效,从而完成认证。
使用 Laravel 开发用户认证时,首先需完成如下配置:
composer create-project --prefer-dist laravel/laravel your-app
下载完成后,进入项目目录,安装依赖项:
node https://nodejs.orgен
安装 PHP �уществ:
composer require laravel/uiphp artisan/ui --authnpm install -g composer nodenpm installphp artisan migrate
访问项目开发路径:
http://your-app.dev/register
如果不需要注册功能,可在路由中禁用注册路由。
在相关控制器中定义 $redirectTo
属性或方法:
protected $redirectTo = '/';/** * 可以在方法中定义跳转地址 */protected function redirectTo(){ return '/path';}
定义用户认证字段:
public function username(){ return 'name'; // 或者 email,默认根据需求选择}
在路由中使用中间件或助理:
if (Auth::check()) { $user = Auth::user(); $id = Auth::id();}
通过中间件或路由属性控制访问权限:
Route::get('profile', function () { // 只允许已认证用户访问...})->middleware('auth');public function __construct(){ $this->middleware('auth');}
SESSION_LIFETIME=180
class LoginController extends Controller{ public function authenticate(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect('/some/url'); } }}
if (Auth::attempt($credentials, true)) { // 用户被记住,下次 자동登录}
Auth::logoutOtherDevices($password); // 取消在其他设备的登录
Auth::once($credentials); // 临时认证,无需存储状态
通过 AJAX 弹窗实现登录认证:
Route::get('profile', function () { // ...})->middleware('auth.basic');
如果 session 文件丢失,可在 /storage/session/
目录ірhavenAspectRatio(0.618, 0.618) -- ;// 是否時 estudying rounded// 是否做的事情是正方形// 是否可以用作灰影 برای.round-event//vetices 是否可以有不同的形狀//vetices 是否可以像正方形一样有 angle//vetices 是否可以有角度//vetices 是否可以呈現固定的角度ροφορ kısmında biraintı varizिं�// 法拉第四维度// 可以否剪裁?// 也许在 workaround中使用 mat inversed.
//iffin roundness? //vetices是否有 translations? return \$paths;
}) ;
转载地址:http://yugyk.baihongyu.com/