问题标签 [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 投票
2 回答
1390 浏览

php - Laravel 8, Sanctum, Fortify /logout 在 Postman 中抛出“CSRF token mismatch”

我安装了 L8、Sanctum 和 Fortify 进行身份验证。我能够/login(使用 aPre-request Script设置X-XSRF-TOKEN)。我什至/api/user成功了。但是当我这样做时/logout,我在 Postman 中收到“CSRF 令牌不匹配”错误。我在文件中的设置如下:

.env

cors.php

强化.php

/app/Http/Kernel.php

我没有HasApiTokens在模型中使用 trait,User因为这是基于 cookie 的身份验证。

在 Postman 中,我使用以下标头作为/logout路线:

我正在POSThttp://localhost:8000/logout. 为什么我收到“CSRF 令牌不匹配”错误?

0 投票
2 回答
5199 浏览

laravel-8 - 如何在 laravel 中去除喷射流和强化?

我正在尝试从 Laravel 中删除 Fortify 和 Jetstream 包,所以我从 App 中删除了它们。提供者,来自 composer.json(需要部分)、Actions、Config、vendor。然后我运行 composer update 并收到以下消息:

脚本@php artisan package:discover --ansi 处理返回的自动加载转储后事件,错误代码为 1

我也从相同的位置移除了圣所

0 投票
1 回答
938 浏览

laravel - 目标 [Laravel\Fortify\Contracts\ResetsUserPasswords] 不可实例化

我正在使用 Laravel 8 和 Fortify 为 SPA 应用程序实现忘记密码/密码重置逻辑。

当调用 /reset-password 并且数据都正确(电子邮件、密码、密码确认、令牌)时,我收到服务器端错误:

目标 [Laravel\Fortify\Contracts\ResetsUserPasswords] 不可实例化。

路由在 api.php 中定义如下:

谢谢你的帮助

0 投票
2 回答
722 浏览

laravel - 如何强制 Laravel API 始终返回 JSON,不重定向

我有一个 Laravel 应用程序,我构建它只用作 JSON API。它没有任何意见,仅支持我们的第一方 SPA。它使用 Laravel 8、Fortify 和 Sanctum。我的 SPA 位于my-app.test,而 api 位于api.my-app.test。SPA 按预期工作。但是,如果我在浏览器中访问我经过身份验证的 API 路由之一,例如api.my-app.test/someResource,我会收到一个错误页面,告诉我“Route [login] not defined.”,并且堆栈跟踪会显示以下代码:

vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:393

我有以下文件,我试图覆盖redirectToandunauthenticated方法,但它不起作用: app/Http/Middleware/Authenticate.php

当我unauthenticated在上面实现时,它似乎不再对我的任何路由进行身份验证,点击任何 API 端点都会返回应该受到保护的结果。当我redirectTo在上面实现时,我收到另一个错误,说“标题可能不包含多个标题,检测到新行”,我不知道从那里去哪里。

全局禁用所有视图和重定向并强制 Laravel 始终返回 JSON 的正确方法是什么?有没有办法覆盖expectsJson

0 投票
4 回答
843 浏览

laravel - Laravel Fortify 不响应 HTTP 代码而是响应实际路由,即使我将注册请求作为 XHR 发送

语境

使用 Postman,我将以下字段发送到 URL 以在数据库中注册用户http://mywebsite/register

  • 电子邮件

  • 密码

  • 确认密码

  • 姓名

根据文档https://laravel.com/docs/8.x/fortify#registration(我从中找到了上述字段),Fortify 已经定义了路由register,所以我不需要自己定义。

根据文档,根据我的需要,我不需要创建注册表单:我直接使用 Postman 将这些注册数据/register作为 XHR POST 请求数据发送到 Laravel Fortify 的路由。此外,我不需要 Fortify 来返回视图,所以我禁用了它们(https://laravel.com/docs/8.x/fortify#disabling-views)。事实上,我只是等待我将在 Postman 的返回数据中看到的 HTTP 代码响应(见下文)。

Fortify 应该返回什么

因为我已经禁用了视图并且因为我发送了一个 XHR POST 请求(在 Postman 中,我将这个 HTTP 标头与注册请求一起发送:)X-Requested-With = XMLHttpRequest

如果注册尝试成功,Fortify 会将用户重定向到通过应用程序的 fortify 配置文件中的 home 配置选项配置的 URI。如果登录请求是 XHR 请求,将返回 200 HTTP 响应。

如果请求不成功,用户将被重定向回注册屏幕,验证错误将通过共享的 $errors Blade 模板变量提供给您。或者,在 XHR 请求的情况下,验证错误将返回 422 HTTP 响应。

https://laravel.com/docs/8.x/fortify#registration

Fortify 实际返回的内容

它正确地注册了用户。但是我在 Postman 中看到的结果是Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException. 事实上,Fortify 正试图进入主视图。

问题

为什么 Fortify 似乎仍在尝试访问返回的视图路由(未定义,因为我不需要它们),因为我的请求正确地是 XHR POST 请求并且我已经禁用了 Fortify 配置文件中的视图?

0 投票
3 回答
2198 浏览

php - laravel 8 fortify Auth::user() 登录后返回 null

我在我的 Laravel 8.12 中遇到身份验证问题,我使用的是默认的 Laravel fortify 1.7.8,我使用正确的凭据登录,应用程序根据需要重定向到仪表板,但中间件身份验证似乎不起作用,并且也Auth::user()返回 null,

在此处输入图像描述

用户模型

FortifyServiceProvider

登录刀片

路线

我一直在寻找一个错误,但我找不到它,我需要一些帮助,谢谢

0 投票
1 回答
1449 浏览

laravel - 记录用户 laravel 8 fortify 的最后登录时间戳和 ip

我目前正在记录用户的最后登录时间戳并将 ip 记录到用户表中。我在 laravel 7 中的身份验证控制器登录功能中做到了这一点。像这样:

但当前项目我使用 laravel fortify 包。我还在学习这个包。记录用户登录时间戳和 ip 的最佳方法是什么。?

谢谢你

0 投票
1 回答
1167 浏览

php - Laravel 8在应用程序/模型中更改用户表名,受保护不起作用

我有一个相对较新的 laravel 8 和 jetstream/fortify 安装。我正在尝试使用与默认“用户”具有不同表名的预先存在的用户表。

通过阅读,我认为我必须在 app\Model\User.php 中更新它。我做了如下:

但是当我尝试注册一个新用户时,我收到了 SQLSTATE 错误,即未找到基表或视图......“mydb.users”不存在。

所以它仍在寻找“用户”而不是“用户”。

我还需要在哪里进行更改?

该文档似乎没有提到其他任何地方,其他堆栈答案似乎表明这应该足够了

编辑:这是我的 config/auth.php 部分

因此,我相信我正在使用具有 eloquent 的正确用户提供程序。

0 投票
2 回答
961 浏览

laravel - Laravel 8 Fortify - 2FA 仅当用户从新设备登录时

我正在我的 Laravel 8 应用程序中实现双因素身份验证 (2FA)。

每次用户登录时都会应用2FA。但是,我并不觉得每次都需要2FA,我什至觉得它很烦人。作为一种解决方案,我正在考虑仅在用户从新设备连接时应用它。有没有人已经做过或者可以给我一些必要的改变的提示?

0 投票
1 回答
1732 浏览

laravel - 如何在 Laravel Fortify 中进行身份验证后运行自定义代码?

我正在将 Laravel 8 与 Fortify 一起使用。我网站上的用户可以在登录之前执行创建数据库记录的操作,这些记录由他们的会话 ID 关联。一旦他们登录或注册,我需要按会话 ID 查找记录并分配他们的用户 ID。

作为 Laravel 的新手,我不知道(也找不到与 Fortify 相关的任何其他相关问题)在哪里放置代码来执行此操作。请有人能指出我正确的方向吗?