randohinn/userfile

为Laravel的Auth流程添加基于文件的用户登录功能。

1.0 2018-07-29 12:10 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:02:35 UTC


README

Latest Version on Packagist

未维护且状态未知

Userfile是一个Laravel包,允许将用户数据存储在yaml文件中。它还支持Bearer类型API认证。

使用方法

安装

生成Laravel的默认认证脚手架。 php artisan make:auth

您可以通过运行以下命令安装包

composer require randohinn/userfile

Laravel将自动检测并注册必要的提供者和认证配置。

然后,运行

php artisan vendor:publish

这将在您的应用中创建一个config/userfile.php文件。

配置

Userfile使用默认的Laravel用户模型。因此,您需要修改模型以进行以下更改。

向模型中添加public $incrementing = false;。这使您可以使用Userfile为您的用户生成的基于字符串的uuid。

idapi_token添加到模型的$fillable数组中。这允许包在您的模型实例中填充这些字段。您将在该数组中定义任何您想存储在用户文件中的自定义字段。

配置

默认情况下,Userfile期望在您的存储文件夹中找到一个名为userfile的文件夹。您可以通过在文件系统中创建自定义文件系统磁盘并编辑config/userfile.php来更改此设置,将新磁盘的名称指定为userfile而不是。在此文件中,您还可以定义用户文件的子文件夹,如果您希望这样做的话。

最后一步是将您的config/auth.php设置为包含'guard' => 'userfile',而不是默认的'guard' => 'web'。您可能需要删除不必要的认证控制器。

创建用户

Userfile期望在您配置的磁盘的配置子文件夹中找到文件。文件名遵循user-email.yaml的标准。例如 rando@randohinn.com.yaml

在创建新的用户文件时,至少需要包含用户的电子邮件、姓名和密码(明文)。密码在首次登录时将被加密!

例如

name: 'Rando Hinn'
email: rando@randohinn.com
password: qwerty

您第一次使用第一个用户登录后,将发生几件事情

  • 将为用户生成一个uuid和一个api密钥
  • 用户的密码将被加密,加密的散列将存储在明文密码的位置
  • 接下来将创建一个id_mapping.yamlapi_mapping.yaml文件,这些文件将放在用户文件旁边。这些文件包含id和API令牌与用户电子邮件之间的映射,以加快查找速度,并且不应被删除。

因此,您的用户文件可能看起来像这样

name: 'Rando Hinn'
email: rando@randohinn.com
password: $2y$10$RHOsWnmZjAQ2o1fceqZ.Nu.Isa6XBIdFAXmEGlb7SZEWfU/cfTScq
id: fb4ac678-0802-473b-be64-dcba94b40e8a
api_token: UmikrAAteG8KWneIREBnp4sQRCbA0HDFjWAUsrQ59m5e5b6RWtS72uQzdiQT

如果您想添加任何字段,只需将它们添加到该文件中,并在模型的$fillable数组中定义它们,就像您通常所做的那样。

许可协议

MIT许可。有关更多信息,请参阅License.md

贡献

欢迎所有贡献。在开始工作之前,请为此创建一个问题。

如果您发现与安全相关的错误,请直接发送邮件到rando@randohinn.com不要创建GitHub问题!