【问题标题】:First Time User Setup首次用户设置
【发布时间】:2021-09-28 04:42:20
【问题描述】:

我正在使用 Jetstream(Livewire)/Fortify auth 构建一个包含用户和角色的系统,但它是一个封闭系统(我的意思是,无法注册自己,必须邀请您)所以我禁用了 Fortify 的注册功能,但我希望第一个用户能够注册自己。

换句话说:Fortify 的注册应该关闭,但是当数据库中没有用户时,它应该打开(电子邮件验证也是如此,但如果我能弄清楚注册部分,验证应该很容易)。

我尝试制作一个中间件来检查是否没有注册用户并重定向到注册视图,但我发现了一些错误(比如视图甚至不存在,因为 fortify 注册已关闭)。

有人知道使用 Jetstream 堆栈完成这项工作的方法吗?谢谢!

【问题讨论】:

  • 我经常写一个命令(laravel.com/docs/8.x/artisan#writing-commands),所以我可以在终端上写php artisan make:user,它会创建一个管理员用户和密码。该命令基本上只是使用一些预定义属性执行User::create()。也许这对您的情况也有帮助
  • @Djave 是的,我正在努力坚持我的计划,但如果我不能解决这个问题,我应该这样做。谢谢你的评论!

标签: php laravel authentication jetstream laravel-fortify


【解决方案1】:

这个呢,在 FortifyServiceProvider.php 启动方法中

Fortify::registerView(function () {
    if(!User::all()->count())
        return view('auth.register');
    else
      abort(404,'No registration allowed');
});

【讨论】:

  • 我可以尝试这种方式,但我正在考虑更集成和自动化的东西。这样用户仍然需要选择访问注册路线,我仍然需要在欢迎视图中删除注册链接,这有点hacky,但我想不出更好的方式,因为中间件方式没有工作。感谢您的帮助!我的想法是在没有用户的情况下强制使用此注册路径,之后该功能将被完全禁用。
猜你喜欢
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多