问题标签 [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.
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
路线:
我正在POST
向http://localhost:8000/logout
. 为什么我收到“CSRF 令牌不匹配”错误?
laravel-8 - 如何在 laravel 中去除喷射流和强化?
我正在尝试从 Laravel 中删除 Fortify 和 Jetstream 包,所以我从 App 中删除了它们。提供者,来自 composer.json(需要部分)、Actions、Config、vendor。然后我运行 composer update 并收到以下消息:
脚本@php artisan package:discover --ansi 处理返回的自动加载转储后事件,错误代码为 1
我也从相同的位置移除了圣所
laravel - 目标 [Laravel\Fortify\Contracts\ResetsUserPasswords] 不可实例化
我正在使用 Laravel 8 和 Fortify 为 SPA 应用程序实现忘记密码/密码重置逻辑。
当调用 /reset-password 并且数据都正确(电子邮件、密码、密码确认、令牌)时,我收到服务器端错误:
目标 [Laravel\Fortify\Contracts\ResetsUserPasswords] 不可实例化。
路由在 api.php 中定义如下:
谢谢你的帮助
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
我有以下文件,我试图覆盖redirectTo
andunauthenticated
方法,但它不起作用:
app/Http/Middleware/Authenticate.php
当我unauthenticated
在上面实现时,它似乎不再对我的任何路由进行身份验证,点击任何 API 端点都会返回应该受到保护的结果。当我redirectTo
在上面实现时,我收到另一个错误,说“标题可能不包含多个标题,检测到新行”,我不知道从那里去哪里。
全局禁用所有视图和重定向并强制 Laravel 始终返回 JSON 的正确方法是什么?有没有办法覆盖expectsJson
?
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 配置文件中的视图?
laravel - 记录用户 laravel 8 fortify 的最后登录时间戳和 ip
我目前正在记录用户的最后登录时间戳并将 ip 记录到用户表中。我在 laravel 7 中的身份验证控制器登录功能中做到了这一点。像这样:
但当前项目我使用 laravel fortify 包。我还在学习这个包。记录用户登录时间戳和 ip 的最佳方法是什么。?
谢谢你
php - Laravel 8在应用程序/模型中更改用户表名,受保护不起作用
我有一个相对较新的 laravel 8 和 jetstream/fortify 安装。我正在尝试使用与默认“用户”具有不同表名的预先存在的用户表。
通过阅读,我认为我必须在 app\Model\User.php 中更新它。我做了如下:
但是当我尝试注册一个新用户时,我收到了 SQLSTATE 错误,即未找到基表或视图......“mydb.users”不存在。
所以它仍在寻找“用户”而不是“用户”。
我还需要在哪里进行更改?
该文档似乎没有提到其他任何地方,其他堆栈答案似乎表明这应该足够了
编辑:这是我的 config/auth.php 部分
因此,我相信我正在使用具有 eloquent 的正确用户提供程序。
laravel - Laravel 8 Fortify - 2FA 仅当用户从新设备登录时
我正在我的 Laravel 8 应用程序中实现双因素身份验证 (2FA)。
每次用户登录时都会应用2FA。但是,我并不觉得每次都需要2FA,我什至觉得它很烦人。作为一种解决方案,我正在考虑仅在用户从新设备连接时应用它。有没有人已经做过或者可以给我一些必要的改变的提示?
laravel - 如何在 Laravel Fortify 中进行身份验证后运行自定义代码?
我正在将 Laravel 8 与 Fortify 一起使用。我网站上的用户可以在登录之前执行创建数据库记录的操作,这些记录由他们的会话 ID 关联。一旦他们登录或注册,我需要按会话 ID 查找记录并分配他们的用户 ID。
作为 Laravel 的新手,我不知道(也找不到与 Fortify 相关的任何其他相关问题)在哪里放置代码来执行此操作。请有人能指出我正确的方向吗?