qumonto / usersys
为 Laravel 定制的用户管理系统。
Requires
This package is not auto-updated.
Last update: 2024-09-14 18:42:15 UTC
README
为 Laravel 5 定制的可配置用户管理系统。
注意 该包是为 Laravel 5 设计的,并且尚未针对 Laravel 4 或更低版本进行测试。
简介:为什么使用 UserSys?
Laravel 自带用户系统,但它不如人们想象的那么可配置。UserSys 是为 Laravel 5 开发者准备的,他们希望对用户系统机制有更好的控制。
您可以通过进行少量编辑或在配置文件中设置适当的标志值来配置或自定义用户系统的主要功能。
视图已提供,当然您也可以通过在配置文件中定义它们来替换它们。
安装
要将 UserSys 作为 Composer 包安装到 Laravel 5 中,只需运行:composer require qumonto/usersys
接下来,通过在 config/app.php
中注册 UserSys 包的服务提供程序来更新它。
'providers' => [ // ... Qumonto\UserSys\UserSysServiceProvider::class, ];
从命令行运行 php artisan vendor:publish
以发布默认配置、视图、迁移、翻译、事件、监听器、资产和请求。如果不希望发布所有文件,则可以在命令后跟适当的标签。
示例:php artisan vendor:publish -tag="config"
可用于仅发布配置文件。
注意 有关每个文件类别的标签的详细信息,请参阅 README.md 中的相应部分
更新 User
Eloquent 模型
必须将 User
模型的 fillable
数组更新为 verification_token
值,以避免在将新用户记录注册到数据库时发生批量赋值异常。
路由
已提供所需的所有用户系统路由,以下列出了这些路由的列表
注意 您无法覆盖这些路由,但在以后的版本中,路由将变得更加灵活。
请求
-
UserLoginRequest
验证用户登录请求。默认情况下,规则定义在UserLoginRequest
类的rules()
方法中,指出电子邮件/用户名是必需的,且长度必须小于 '255' 个字符。密码也是必需的,且长度必须至少为 '5' 个字符。 -
UserRegisterRequest
验证用户注册请求。默认情况下,用户名/电子邮件字段被标记为必需,长度必须小于 '255' 个字符,且应该是唯一的值。密码长度必须至少为 '5' 个字符,并且需要确认。
将 requests
标签添加到 vendor:publish 将发布请求类。php artisan vendor:publish --tag="requests"
注意 您可以根据项目需求修改规则。请求文件位于
app/Http/Requests/
目录。
事件
当新用户注册时,将触发一个事件。事件类名为 UserRegistered
,并扩展 App\Events\Event
。
要推送 UserRegistered
事件类到 app/Events
目录,请使用 events
标签。php artisan vendor:publish --tag="events"
监听器
我们包含了一个监听器类 AccountVerificationEmail
,当在 config/usersys.php
文件中将 email_verification
标志设置为 true
时,它会向注册用户发送账户验证邮件。
要将监听器发布到 app/Listeners
目录,请使用 listeners
标签和 vendor:publish
命令。执行 php artisan vendor:publish --tag="listeners"
。
迁移
您不必使用此包提供的迁移,您可以通过在您的 users
表中添加/修改4个简单属性来跳过迁移。
以下是 UserSys 包默认提供的添加/修改的属性
$table->string(config('usersys.username_column_and_field'))->unique(); $table->string(config('usersys.password_column_and_field'), 60); $table->string('verification_token', 50)->nullable(); $table->rememberToken();
$table->string(config('usersys.username_column_and_field'))->unique();
将根据您在 config/usersys.php
文件中设置的 username_column_and_field
标志,存储电子邮件、用户名或其他任何字段。
$table->string(config('usersys.password_column_and_field'), 60);
将用于存储加密密码。存储用户密码的属性名称取决于您在 config/usersys.php
文件中如何配置 password_column_and_field
标志。
$table->string('verification_token', 50)->nullable();
将包含用于账户验证过程中的电子邮件验证令牌。请记住,verification_token
属性的长度必须至少为50个字符。
$table->rememberToken();
将用于存储应用程序维护的 "记住我" 会话的令牌。因此,如果您希望提供 "记住我" 功能,则必须验证您的 users
表是否包含以下列。
资产
资产包括名为 app.css
的 bootstrap css 文件,该文件将在 UserSys 包提供的默认视图中被引用。这些资产将被发布到 /public/css/
目录。
要发布此包中可用的资产,您可能需要运行 php artisan vendor:publish --tag="assets"
。
翻译
翻译包括语言文件,这些文件将被用于显示用户特定活动的消息。例如,您可以编辑 email_verification_subject
标志以更改发送给用户的验证电子邮件的主题。
要将翻译发布到 app/resources/lang/en
目录,您可以运行以下命令:php artisan vendor:publish --tag="translations"
。
视图
由于 UserSys 使用默认的 PasswordController
类进行密码重置,因此视图的处理方式不同。执行 php artisan vendor:publish --tag="password-views"
将 password.blade.php
(忘记密码视图)和 reset.blade.php
(账户重置视图)推送到 resources/views/auth/
目录。
其他视图,如 login.blade.php
、register.blade.php
和 verify.blade.php
,可以在 config/usersys.php
文件中进行配置。
配置
app_name
在这里,您可以指定您的应用程序名称,它将在每个页面的导航栏标题中显示。
redirect_after_fail
当用户尝试登录应用程序,并且如果用户未能验证身份,则用户将被重定向到此标志设置的路线。默认设置为 'login' 路由,但您可以自由更改。
redirect_after_logout
当用户从应用程序注销时,用户将在成功注销后重定向到此标志设置的路线。默认设置为 'login',可以根据偏好设置。
redirect_after_login
在应用程序中成功登录后,用户将被重定向到此标志设置的路线。默认设置为 'home',可以根据偏好进行更改。
redirect_after_verification
用户完成邮箱验证流程后,用户将被重定向到设置此标志的路由。默认设置为 'login',如果您想省略邮箱验证功能,则此字段不会影响您的应用程序。
log_user_after_registration
通过设置此标志(是 true
或 false
),您可以决定是否允许用户登录其账户。默认值为 false,因此用户在成功注册后需要提供电子邮件/用户名和密码才能登录。如果值设置为 true
,则在成功注册后,用户将被重定向到 redirect_after_login
键设置的路由。否则,用户将被重定向到 redirect_after_logout
设置的路由。
email_verification
通过设置此标志(是 true
或 false
),您可以选择启用或禁用邮箱验证功能。如果值设置为 true,则在成功注册后,用户必须通过点击通过电子邮件发送的链接来验证账户。否则,用户可以在没有任何邮箱验证流程的情况下登录账户。
注意 请记住,必须在 'User' 模型中将可填充数组更新为
verification_token
字段。
username_column_and_field
登录表单中登录邮箱的名称字段和相应的数据库列必须相同。因此,如果您在登录表单中将 'email_id' 用作电子邮件字段的名称,则您也必须将 'email_id' 用作相应数据库列的名称。设置此标志将确保一旦指定,可以在两种情况下访问此名称。
password_column_and_field
如果您在数据库中使用除 'password' 之外的标识符来存储用户密码,则可以在此处指定它,其余的将自动处理。此外,如果您正在替换默认视图,请确保在 HTML 页面中相应地命名密码字段。
login_view
您可以指定您想要用于登录表单的视图。它将覆盖包的默认视图。如果您想加载登录页面的默认视图,则将字段设置为 'null'。
如果您的登录视图位于 /resources/views/auth/
并命名为 login.blade.php
,则可以设置标志如下
'login_view' => 'auth.login',
register_view
在此,您可以指定您想要用于注册表单的视图。它将覆盖包的默认视图。如果您想加载注册页面的默认视图,则将字段设置为 'null'。
如果您的注册页面视图位于 /resources/views/auth/
并命名为 register.blade.php
,则可以设置标志如下
'register_view' => 'auth.register',
email_verify_view
您可以指定您可能想要用于发送验证电子邮件的视图。新值将覆盖默认视图。如果您想加载验证电子邮件的默认视图,则将字段设置为 'null'。
注意 将向电子邮件验证视图注入一个名为
verification_token
的变量,其中包含用户的验证令牌。
session_identifier
会话标识符将有助于检索会话的闪存消息。因此,您可以根据自己的选择指定会话标识符,并在视图中引用它。
示例
设置会话标识符
'session_identifier' => 'flash-message',
将数据闪存到视图中
session()->flash(config('usersys.session_identifier'), 'Your flashed message!');
在视图中检索闪存消息
Session::get(config('usersys.session_identifier'));
注意 函数
config('usersys.session_identifier')
将返回设置给session_identifier
标志的值。
版权和许可证
UserSys 由 Vijay Kumar 编写并发布于 MIT 许可证下。有关详细信息,请参阅 LICENSE 文件。
版权所有 2015 Vijay Kumar