lud / club
简单的 Laravel 注册/登录模块,包含简单的用户角色。
Requires
- laravel/framework: >=4.2
This package is auto-updated.
Last update: 2024-09-12 00:15:08 UTC
README
Club 是一个用于与 Laravel 4 配合使用的身份验证模块,具有最少的配置和没有其他依赖。
4个简单步骤进行安装
1. 将 club 添加到您的 composer.json 中。
{ "require": { "laravel/framework": "4.2.*", ... "lud/club": "~1.0" } }
2. 更新依赖关系
使用 composer 从 shell 中更新您的依赖关系。
composer update
3. 添加服务提供者
只需将 'Lud\Club\ClubServiceProvider',
添加到 app/config/app.php
文件中提供者数组末尾。
// ... 'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', // * snip * 'Lud\Club\NovelServiceProvider', ), // ...
4. 创建表并迁移
在 shell 中运行以下命令
4.1 创建用户表
php artisan club:users-table
这将生成一个名为 ..._create_club_users_table.php
的迁移文件,位于 app/database/migrations。此迁移文件创建用于存储用户的表。您可以修改此文件的内容以满足您的需求。
4.2 创建用户表
php artisan auth:reminders-table
这将创建一个名为 ..._create_password_reminders_table.php
的迁移文件。同样,如果需要,您可以修改该文件。此迁移文件创建用于存储密码提醒令牌(“忘记密码”功能)的表。
4.3 创建用户表
php artisan migrate
这将执行迁移。
4.4(可选)模型和表配置
请注意,表名取决于 auth.model
配置值。默认值是 'User'
,因此迁移将创建一个 users
表。
检查您的 app/config/auth.php
文件,如果您需要更改它。
您还可以通过修改模型来更改表名
class User extends Eloquent { protected $table = 'another_table'; }
测试
现在,转到 https://:8000/signup(根据您的 Laravel 设置/网络服务器更改 URL),您可以在网站上注册。
有许多机会,如您看到 validation.attributes.email
之类的信息。这将会改变,因为 Laravel 正确处理了包的 lang 文件。但在此期间,您需要将这些字符串添加到您的 app/lang/xx/validation.php
文件中(其中 xx
是如 en
或 fr
一样的语言代码)。
Club 配置
Club 与默认配置配合得很好,但您可能想调整一下您的安装。为此,首先将配置发布到您的应用空间,以便您可以正确更新 Club 包。
php artisan config:publish lud/club
现在,您可以在 app/config/packages/lud/club/config.php
中查看配置文件。以下是每个键/值的一个简单说明,但您可能想在 Club 的 Github 仓库 中提出一个问题。
1. 控制器
此选项允许您指定 Club 的路由映射到的控制器。您可以复制 ClubController
并对副本进行更改。
2. 路由前缀
此选项允许您更改 Club 的 URL,带有前缀,这对于您有与其他路由冲突的 Club 时很有用。如果您设置 'prefix' => 'myprefix',
,则登录页面 URL 将为 /myprefix/login
。
所有 Club 路由都有路由名称。您可以通过使用 URL::route('<route-name>')
来编写访问这些路由的 URL;前缀将自动添加。
路由名称和 URL(不含前缀)在此处描述
在过滤器中使用路由
如果您设置了路由前缀,您需要更改 app/filters.php
中的认证过滤器。使用俱乐部路由名称指向登录页面。
// ... else { return Redirect::guest('login');
... 将变成 ...
// ... else { return Redirect::route('club.login');
3. 默认登录/注销重定向
以下是在无法进行更好的重定向时,登录/注销会重定向到的URL。
4. 登录/注销“不重定向”(“停留在当前页面”)
此选项允许用户在点击“登录”或“注销”链接时停留在同一页面上。您不希望您的网站在用户登录或注册时将所有用户发送到主页。
'all'
选项将此功能添加到任何命名路由。null
选项完全禁用此功能。- 通过路由名称数组启用此功能仅适用于这些路由,例如
array('my_route','my_resource.show')
5. 视图
您可能想更改俱乐部视图以进行自定义。只需执行此命令
php artisan view:publish lud/club
所有视图都位于 app/views/packages/lud/club
。
5.1 架构
所有俱乐部表单都存储在自己的blade模板中,在俱乐部视图的 include
子目录中。对于每个表单,我们都有一个包装器,存储在视图目录中,扩展了位于 layouts
子目录中的默认布局 base.blade.php
。
回到配置文件,对于每个俱乐部页面,我们在 views
数组中都有一个值,例如 'signup' => 'club::signup_form_wrapper'
。这意味着要渲染 signup
页面,我们调用 club::signup_form_wrapper
视图。
我们还有一个 base_layout
配置值,设置为 club::layouts.base
。这使得 club::signup_form_wrapper
扩展此视图。
5.2 简单方法
因此,最简单的事情就是更改 'base_layout'
配置以设置自己的布局。您只需要在其中定义一个 'club'
部分
@section('club') @show
5.3 复杂方法
如果您需要更多控制,只需在配置中用您自己的视图名称填充 'views'
数组。现在,俱乐部控制器将调用这些视图。在您的blade文件中,您仍然可以包含表单
@include('club::include.signup_form')
6. 邮件
要设置“忘记密码”功能,您必须在提醒邮件中使用 club.reset_password_access
路由。
检查 app/config/auth.php
文件中的 config.auth.reminder.email
配置值。这是渲染发送给您的用户的邮件的视图名称。您应将此视图中的 {{ URL::to('password/reset', array($token)) }}
替换为 {{ URL::route('club.reset_password_access', array($token)) }}
。
您还可以将配置设置为 'club::emails.reminder_email'
。这是具有正确路由的默认Laravel视图。
用户验证
您可以为模型类添加验证规则,以便在更新 User
(或您选择的任何模型)时自动进行验证。
默认验证规则如下
class User extends Eloquent { // ... public $rules = array( 'email' => 'required|email|unique:'.$this->getTable().',email', 'password' => 'required|min:3' ); // ... }
请根据 Laravel 文档 自定义自己的规则。
路线图
- 在点击注册时启用“停留在当前页面”
- 记录 UserRolesTrait
- 允许无电子邮件登录:提供选择任意字段的方式(例如
username
)。 stay_on_page
默认值应该是null
吗?- 完成文档
- 使用L5功能(Request/AuthController/LoginRequest?)
- 记录L5安装