randohinn / userfile
为Laravel的Auth流程添加基于文件的用户登录功能。
Requires
- php: ^7.1
- illuminate/support: ~5.6.0
- symfony/yaml: ^4.1
This package is not auto-updated.
Last update: 2024-09-29 06:02:35 UTC
README
未维护且状态未知
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。
将id
和api_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.yaml
和api_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问题!