如何在 Laravel Jetstream 上使用 REST API 管理用户
Posted
技术标签:
【中文标题】如何在 Laravel Jetstream 上使用 REST API 管理用户【英文标题】:How to manage users using REST API at Laravel Jetstream 【发布时间】:2021-02-13 20:19:38 【问题描述】:我正在使用 Laravel8/Jetstream 后端和 Vue2 前端制作应用程序。
我认为 Jetstream 的文档不是很清楚,与 Laravel 的文档和 JEFFREY WAY 的 Laracasts 相比,它们很棒且可用。 但是,恕我直言,自定义这个新的身份验证功能的文档较少。
我想创建一个前端页面,用于由管理员管理用户,并为每个用户创建一个配置文件管理器,以使用密码更改功能编辑自己的数据 - 并使用控制器来使用 Jetstreams(和 Fortify)服务。
我没有找到任何帮助或最佳实践。
请帮我把我放在正确的道路上。
【问题讨论】:
Fortify 已经为您提供了所有逻辑。您可以检查您的路线以了解 auth 路线 fortify 为您提供了什么。您的前端可以简单地连接到这些路由。 我找到了那些路由和控制器。我制作了一个自己的控制器来处理来自我的前端的请求,我不想为个人资料信息和密码使用单独的保存按钮(或者我应该吗?也许更清洁和更容易......)但不幸的是我不知道如何从我的控制器调用这些控制器... :( @MaartenVeerman 今天早上我终于醒来,明白了你的评论是什么意思......我只是简单地将我的 API 路由到“用户/配置文件信息”并且它工作(在我启用 Jetstream 的 API 功能和将 'user/*' 插入到我的 cors 配置中)。谢谢你。 (恕我直言,应该在文档中澄清。)但是它仅适用于当前用户。我应该如何管理其他用户? 您需要创建自定义路由和自定义控制器逻辑来检索用户信息,就像您使用任何其他模型一样。例如,您的路线可能是users/id/profile-information
【参考方案1】:
正如 Maarteen 指出的,我必须使用 Jetstream 提供的路线:
要在启用 API 支持的情况下更新当前用户的个人资料信息,必须向 user/profile-information
路由调用 PUT 请求。
要更改他/她的密码,必须向 user/password
路由调用 PUT 请求。
这里调用了App\Actions\Fortify\UpdateUserPassword
动作,它使用App\Actions\Fortify\PasswordValidationRules
类提供的密码验证规则。
要由管理员管理用户,我必须创建一个带有自定义操作的新控制器,但例如,对于新用户创建逻辑,我使用 CreatesNewUsers 类来获取输入,它使用 App\Actions\Fortify\CreateNewUser
class,它可以可以定制。
【讨论】:
以上是关于如何在 Laravel Jetstream 上使用 REST API 管理用户的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色
CSS 不会在 XAMPP 上的 Laravel 8 + Jetstream 中加载
Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录