lud/club

简单的 Laravel 注册/登录模块,包含简单的用户角色。

1.0.4 2014-10-01 12:07 UTC

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 是如 enfr 一样的语言代码)。

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安装