puz / multicolumnauth
允许用户使用用户名和/或电子邮件登录
Requires
- illuminate/contracts: ^5.2
- illuminate/support: ^5.2
This package is auto-updated.
Last update: 2024-09-20 20:41:41 UTC
README
你是否曾想过需要允许用户既输入用户名又输入电子邮件字段?那么你很幸运!
Puz MultiColumnAuth 允许你的用户在登录时使用他们想要的任何用户字段!
安装
composer require puz/multicolumnauth
您需要通过向应用程序添加服务提供程序来更新您的 config/app.php
。
在提供程序部分添加以下内容:Puz\MultiColumnAuth\ServiceProvider::class
要配置您的字段和列,您需要添加我的配置文件。只需运行 artisan 命令 php artisan vendor:publish
现在您需要做的最后一件事是替换当前的授权特性。在默认的 AuthController 类中,您会看到 laravel 包含了 use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
。如果您仍然在使用用户认证和注册,只需将其更改为:use Puz\MultiColumnAuth\AuthenticatesAndRegistersUsers;
。如果您不需要注册,只需将其更改为 use Puz\MultiColumnAuth\AuthenticatesUsers;
,或者如果您有一个自定义注册特性并且需要将此 AuthenticatesUsers
包含在自定义类中,也进行相同的更改。简而言之,有两种可用的特性
Puz\MultiColumnAuth\AuthenticatesAndRegistersUsers
Puz\MultiColumnAuth\AuthenticatesUsers
如何使用
选择可以用于登录的列
在您通过 php artisan vendor:publish
创建的新配置文件中,该文件位于 config/puz/multicolumnauth.php
,存在一个键名为 columns
的数组。此键的值是一个数组,包含您希望用户用于登录的列。例如:['username', 'email']
将检查 username
列,然后是 email
。
选择登录字段的名称
在同一个配置文件中,您有一个键 loginfield
。默认设置为 login
。这意味着您通常输入用户名或电子邮件的输入字段使用 login
名称,或者您可以自己选择。
它是如何工作的?
如果您已指定用于登录的列,它将遍历每一列并尝试登录。如果其中之一成功,则使用该列登录。
但是有一个问题... 如果您将 columns
设置为允许 username
、phone
和 email
,按此特定顺序,那么您需要注意用户名可能是什么。有人可能已经将用户名设置为别人的电子邮件。如果他们偶然使用了相同的密码,则有人将有权访问另一个账户。
作为备用,如果您想使用 laravel 的默认设置,只需将配置中的列更改为空值即可,如下所示
[
'columns' => null,
]