speelpenning / laravel-authentication
为Laravel 5.2提供完全可配置的认证。
Requires
- php: >=5.5.9
- laravel/framework: 5.2.*
- speelpenning/contracts: *
Requires (Dev)
- phpunit/phpunit: ~4.0
- symfony/css-selector: ~3.0
- symfony/dom-crawler: ~3.0
README
此包旨在快速启动针对Laravel应用的极高可配置认证。它提供
- 一个基本的用户模型(Eloquent),使用Laravel附带的用户表迁移
- 用于注册的用户控制器
- 用于登录和登出的会话控制器
- Twitter bootstrap视图和可复用的表单
- 事件,以连接您的监听器(日志、通知、电子邮件等)
入门指南
安装
对于Laravel 5.1,请使用v0.2.4。
通过Composer拉取包
composer require speelpenning/laravel-authentication
将服务提供者添加到app.php
Speelpenning\Authentication\AuthenticationServiceProvider::class,
执行以下命令以发布并运行数据库迁移
php artisan vendor:publish && php artisan migrate
用户模型
有两种实现方式:使用包内附带的模型,或者去除App\User并让它扩展包的用户模型。你很可能选择扩展,这样你就可以向模型添加自己的逻辑和关系。
仅使用包内模型时,按如下方式更改auth.php中的模型条目
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Speelpenning\Authentication\User::class, ], ],
扩展可以按如下方式完成
<?php namespace App; use Speelpenning\Authentication\User as BaseUser; class User extends BaseUser { // }
为您的应用提供有用的路由
路由名称 | 描述 |
---|---|
authentication::user.create | 显示注册表单 |
authentication::session.create | 显示登录表单 |
authentication::profile.show | 显示用户的个人资料 |
authentication::session.destroy | 执行用户注销(在profile.show中显示) |
authentication::profile.edit | 显示编辑个人资料表单(在profile.show中显示) |
authentication::password.edit | 显示更改密码表单(在profile.show中显示) |
authentication::password-reset.create | 显示请求密码重置链接的表单 |
authentication::user.index | 显示用户列表(仅限管理员) |
所有路由都有与路由名称相同的翻译条目,例如trans('authentication::user.create').
在您的应用中集成
为此,我建议您阅读下面的配置部分。当您有一个满足您需求的配置时,您可以在以下事件中添加一些监听器
Speelpenning\Authentication\Events\PasswordResetLinkWasSent::class Speelpenning\Authentication\Events\PasswordWasChanged::class Speelpenning\Authentication\Events\PasswordWasReset::class Speelpenning\Authentication\Events\UserHasLoggedIn::class Speelpenning\Authentication\Events\UserHasLoggedOut::class Speelpenning\Authentication\Events\UserHasLoginHasFailed::class Speelpenning\Authentication\Events\UserWasBanned::class Speelpenning\Authentication\Events\UserWasRegistered::class Speelpenning\Authentication\Events\UserWasRemembered::class Speelpenning\Authentication\Events\UserWasUnbanned::class Speelpenning\Authentication\Events\UserWasUpdated::class
用法
通过命令行注册用户
用户可以使用以下命令进行注册。当公共注册被禁用时,这是在您的应用程序中注册用户的唯一选项。
php artisan user:register <email> [<name>] [--with-reset]
管理员权限
管理员能够使用用户管理功能。您可以使用以下命令授予或撤销管理员权限
php artisan user:admin <email> [--revoke]
通过命令行禁止或解禁用户
如果您是唯一的管理员并且意外地封禁了自己,您可以像这样解除封禁
php artisan user:ban <email> [--unban]
配置
为了避免发布配置,所有配置都可以通过.env文件完成。
启用路由
默认情况下,该包包含的路由被禁用,以避免与您的应用程序冲突。它们可以像这样启用
AUTH_ENABLE_ROUTES=[true|false]
默认值:false
父视图和电子邮件视图
该包附带一个纯白色的bootstrap父视图。这可能满足您的需求,但如果您不太喜欢它,可以使用以下行进行更改
AUTH_APP_VIEW=<view-name>
默认值:authentication::app
AUTH_EMAIL_VIEW=<view-name>
默认值:authentication::email
注册选项
允许或禁止公开注册
AUTH_REGISTRATION_ALLOW_PUBLIC=[true|false]
默认值:true
用户名字段
此选项切换用户名字段的开启、关闭或使其成为必填字段。
AUTH_REGISTRATION_USERNAME=[on|off|required]
默认值:开启
重定向URI
注册成功后,用户将被重定向到此URI。这必须是您的应用程序内的有效URI,因为重定向()助手函数正在处理重定向。
AUTH_REGISTRATION_REDIRECT_URI=<uri>
默认值:/
密码选项
最小密码长度
AUTH_PASSWORD_MIN_LENGTH=<length>
默认值:8
登录选项
记住我
如果您想为用户提供记住登录的便利,请将此选项切换为开启。
AUTH_LOGIN_REMEMBER_ME=[on|off|default]
默认值:关闭
重定向URI
登录尝试成功后,用户将被重定向到此URI。这必须是您的应用程序内的有效URI,因为重定向()助手函数正在处理重定向。
AUTH_LOGIN_REDIRECT_URI=<uri>
默认值:/
注销选项
重定向URI
执行注销后,用户将被重定向到此URI。这必须是您的应用程序内的有效URI,因为重定向()助手函数正在处理重定向。
AUTH_LOGIN_REDIRECT_URI=<uri>
默认值:/
密码重置选项
电子邮件视图
在此设置您的电子邮件名称以覆盖包的默认视图。视图接收用户($user)和密码重置模型($passwordReset)。
AUTH_PASSWORD_RESET_EMAIL=<view-name>
默认值:authentication::emails.password-reset
发件人详情
AUTH_PASSWORD_RESET_FROM_EMAIL=<email-address>
默认值:config('mail.from.address')
AUTH_PASSWORD_RESET_FROM_NAME=<sender-name>
默认值:config('mail.from.name')
主题
AUTH_PASSWORD_RESET_SUBJECT=<key>
默认值:authentication::password-reset.subject
令牌过期时间(分钟)
AUTH_PASSWORD_RESET_EXPIRES_AFTER=<minutes>
默认值:config('auth.passwords.users.expire')