laravel–用户认证脚手架

Laravel 自带了用户认证功能,我们将利用此功能来快速构建我们的用户中心。
首先执行认证脚手架命令,生成代码:

php artisan ui:auth

安装完成后,打开 routes/web.php 查看修改了哪些内容:

可以看到在我们的主页下,多了两个表达式,先看第一个:

Auth::routes();

此处是 Laravel 的用户认证路由,在 vendor/laravel/ui/src/AuthRouteMethods.php 中即可找到定义的地方,以上等同于:

// 用户身份验证相关的路由
Route::get('login', 'AuthLoginController@showLoginForm')->name('login');
Route::post('login', 'AuthLoginController@login');
Route::post('logout', 'AuthLoginController@logout')->name('logout');

// 用户注册相关路由
Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('register', 'AuthRegisterController@register');

// 密码重置相关路由
Route::get('password/reset', 'AuthForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'AuthForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'AuthResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'AuthResetPasswordController@reset')->name('password.update');

// Email 认证相关路由
Route::get('email/verify', 'AuthVerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}/{hash}', 'AuthVerificationController@verify')->name('verification.verify');
Route::post('email/resend', 'AuthVerificationController@resend')->name('verification.resend');

为了更加直观,我们将在 web.php 中使用以上替换 Auth::routes();

生成的视图

本地化

可以看到登录表单是英文版本的,打开模板文件,此模板文件是我们刚刚使用 ui:auth 命令生成的:

resources/views/auth/login.blade.php

中文语言包

会有很多人会遇到翻译 Laravel 自带模板的问题,所以我们无需自己一个个去翻译,这种通用的问题找找扩展包来处理即可。
我们将使用 Laravel Lang 项目来实现,此项目支持了 52 个国家的语言,使用以下命令安装:

composer require "overtrue/laravel-lang:~4.0"

完成上面的操作后,将项目文件 config/app.php 中的下一行

IlluminateTranslationTranslationServiceProvider::class,

替换为:

OvertrueLaravelLangTranslationServiceProvider::class,

完成后刷新页面,完美翻译:

Laravel Lang 同自定义语言包一样,都是根据 config/app.php 里 locale 的选项来选择语言的。
值得一提的是,如果你想修改扩展包提供的语言文件,可以使用以下命令发布语言文件到项目里:

php artisan lang:publish zh_CN

发布后的语言文件存放于 resources/lang/zh_CN 文件夹。

相关推荐: 根据用户访问的路由判断有无权限访问

首先,我使用的是用户角色权限控制包 Laravel-permissio, 关于怎么样设置权限,请看地址 在权限设置好后,需要去验证某个用户有没有权限访问某个路由, 就要去设置一个中间件, 生成中间件 php artisan make:middleware Ch…

版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/php/113.html
来源:Code林
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>