puz/multicolumnauth

此包最新版本(v0.1.0)没有可用的许可证信息。

允许用户使用用户名和/或电子邮件登录

v0.1.0 2016-01-29 07:49 UTC

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 设置为允许 usernamephoneemail,按此特定顺序,那么您需要注意用户名可能是什么。有人可能已经将用户名设置为别人的电子邮件。如果他们偶然使用了相同的密码,则有人将有权访问另一个账户。

作为备用,如果您想使用 laravel 的默认设置,只需将配置中的列更改为空值即可,如下所示

[
    'columns' => null,
]