问题标签 [laravel-fortify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
129 浏览

laravel - 为 Laravel Socialite 用户启用两个因素时,如何禁用 Laravel Fortify 密码确认?

所以我有一个使用 Fortify 进行身份验证的 Laravel 8 应用程序,我最近设置了两因素身份验证。除了我之前使用 Socialite 设置登录外,使用普通用户/密码一切都很好。我进行社交登录的方式是在用户登录时为他们设置一个随机密码,因为让他们手动设置密码有点违背社交登录的目的。如果我设置,问题出在 Fortify

为真,我有效地做到了,这样社交名流用户就无法在不先重置密码的情况下设置 2FA。我想我想做的只是用于社交登录,并且在两个因素设置期间禁用密码确认。我想知道如何自己找到这些东西的答案,但经过大约一个小时的搜索,我希望有人能帮助我指出正确的方向。我在 Fortify 源中做了一些探索,一些可能的候选人是:Fortify::confirmPasswordsUsing,,Fortify::authenticateThrough或者可能修改身份验证防护,但到目前为止,所有这些都不是错误的位置,就是高于我的工资等级。理想情况下,单击启用时TwoFactorAuthenticationController@store只会跳过社交登录的密码确认。那有意义吗?你是如何处理这种情况的?

0 投票
0 回答
78 浏览

php - Laravel Jetstream 寄存器上未定义 Auth guard [api]

所以,我刚刚启用了 Laravel Jetstream 注册。当我尝试提交时,模型创建工作但是,自动登录没有。

它抛出一个错误说:

未定义身份验证保护 [api]。

我真的不知道为什么它使用 API 保护。这是我的 auth.php

我一直在寻找答案将近 5 个小时,但仍然无法使其工作。尝试清除每个缓存,但没有运气。

我可能会错过什么?

谢谢!

0 投票
2 回答
136 浏览

laravel - 如何在区域设置的 ResetPassword Notification 中翻译 Lang::get('Reset Password Notification')?

如何翻译通知消息文本?我找到它的路径, /vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php' copied it's content to app/Notifications/PasswordReset.php`

如何翻译Lang::get('Reset Password Notification')字符串,将我的翻译放在哪里,如何设置语言环境?

0 投票
1 回答
37 浏览

laravel - {{ auth()->user()->email }} / {{ Auth::user()->email }} 在 x 组件中不起作用

php artisan make:component Navbar,创建:

  • App\View\Components\Navbar.php
  • app\resources\views\components\navbar.blade.php

放置{{ auth()->user()->email }}{{ Auth::user()->email }}在刀片文件中,给出了这个错误:

  • Trying to get property 'email' of non-object.

试图通过将我的更改App\View\Components\Navbar.php为:

并添加{{ $email }}到我的刀片文件中并且它有效。

但是,我想显示来自经过身份验证的用户的电子邮件地址,所以我改为App\View\Components\Navbar.php

我又遇到了同样的错误。

0 投票
1 回答
356 浏览

php - 注销时删除 Cookie、Laravel 8.x、Fortify/Jetstream

寻找一种方法来执行一些代码,特别是在从使用 Fortify 和 JetStream 的 Laravel 8.x 框架注销时删除/过期一些 cookie。

我注意到几个帖子引用了相同的问题,但不太确定哪个是最好的以及如何实施。

这个: Laravel Fortify Logout Redirect看起来很有希望:

那里的第二个选项说:

创建一个新的 LogoutResponse 类并将重定向逻辑实现到 toResponse 方法中:

应用程序/Http/Responses/LogoutResponse.php

现在您可以在 FortifyServiceProvider 的 boot 方法中将新响应绑定到服务容器中:

app/Providers/FortifyServiceProvider.php

另请参阅: Laravel Fortify

似乎只是做一个重定向,但在我的情况下,我实际上想要使一组 cookie 过期,并可能在 app/Http/Responses/LogoutResponse.php 中做更多的内务处理。

也不完全确定如何在 Laravel 中删除 cookie,?在某些情况下,用户可能实际上甚至没有登录,我可能想在他们关闭浏览器时删除一个 cookie(也许通过使用 JS 来检测关闭浏览器然后删除 Cookie(后端只有 HTTP cookie?)。

0 投票
1 回答
136 浏览

laravel - 如何更改登录页面的布局?

在 Laravel 8/livewire / Fortify 应用程序中,我想更改登录页面的布局,因此在文件 resources/views/auth/login.blade.php 中我在文件顶部进行了评论并尝试在 app/Providers/FortifyServiceProvider.php 中分配布局,就像我对 livewire 组件所做的那样:

但它不起作用......我该怎么做?

提前致谢!

0 投票
2 回答
66 浏览

laravel - 如何为 laravel 强化路线设置名称?

我有点好奇,抱歉这个愚蠢的问题。

我想在 Laravel 8 + Fortify 堆栈中获取登录路径,看来我不能直接使用“/login”,因为它会附加在 URL 上。所以我想用

但问题是,它给了我一个错误“未定义路线”。当我运行命令route:list时,它显示一个空白名称用于登录和注册,但有一个用于“注销”的名称

我想知道如何为 fortify 路线命名,因为它没有在routes.web

0 投票
1 回答
68 浏览

passwords - 如何为电子邮件创建 $token 来强化 Laravel?

我正在覆盖默认的 Fortify 密码重置,使其像欢迎电子邮件一样工作,用户可以在其中获得用于创建新密码的电子邮件链接。

这种方式token不可接受?我在这里做错了什么?

0 投票
0 回答
82 浏览

laravel - Laravel Fortify - 动态启用功能

我想根据用户设置切换 Fortify 功能。

My/config/fortify.php默认启用了一组基本功能:

其余功能根据数据库设置动态启用。

这是我的AppServiceProvider::boot()方法:

当我访问该网站时,该代码有效(启用了功能)。

但是,这些动态启用功能的关联路由未注册,也不会显示在artisan route:list.

仅在启用该fortify/routes/routes.php功能时才注册路由:

如何为动态启用的功能生成路由?


更新#1:正如评论中所建议的,我已经在FortifyServiceProvider课堂上包含了代码。路线没有改变。我还将代码添加到中间件,仍然没有运气。

看来我需要在laravel/fortify配置路由之前注入此代码。截至目前,我的代码是在包初始化之后执行的。

0 投票
0 回答
41 浏览

laravel - 使用 Laravel Jetstream/Fortify 重新验证用户

我正在使用 Laravel Jetstream(它使用 Laravel Fortify 进行身份验证)。默认行为似乎是,如果用户处于非活动状态的时间长于文件SESSION_LIFETIME中的时间.ENV,则会话过期。

我正在尝试修改如何处理此会话到期。目前,当用户回到他们的计算机以进行过期会话时,如果他们单击导航页面(例如任何 GET 请求),他们将被推回登录页面并能够重新进行身份验证,这很棒。

但是问题是,如果他们正在创建尚未保存的博客文章之类的内容,则他们会在更长的时间内处于非活动状态,SESSION_LIFETIME并且会话到期,然后他们会返回计算机,并且继续添加到他们的博客文章中,当他们尝试保存(非 GET 请求)时,会返回 405 响应(不支持的方法),并且用户将无法保存他们的帖子并且可能会丢失他们的工作。

我在这里基本上有两个选项(1)设置SESSION_LIFETIME像 2 周这样的东西,这样就不太可能发生,或者(2)创建一个像模式一样的东西,打开并允许用户从他们当前的页面重新验证,从而保持可能未保存的数据。这个事情谁有经验?大多数功能似乎都来自/vendor/laravel文件夹,所以我不确定更改功能是否容易/值得。

谢谢