speelpenning/laravel-authentication

此包已被弃用且不再维护。未建议替代包。

为Laravel 5.2提供完全可配置的认证。

v0.3 2016-02-17 20:30 UTC

This package is auto-updated.

Last update: 2020-05-08 08:34:45 UTC


README

Build Status codecov.io Latest Stable Version Latest Unstable Version License

此包旨在快速启动针对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')