首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加强登录响应无效,继续返回{两个因素: false}

加强登录响应无效,继续返回{两个因素: false}
EN

Stack Overflow用户
提问于 2022-02-02 03:04:26
回答 1查看 867关注 0票数 0

这是我的代码:

我的LoginResponse

代码语言:javascript
复制
<?php

namespace App\Http\Responses;

use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;

class LoginResponse implements LoginResponseContract
{
    /**
     * @param  $request
     * @return mixed
     */
    public function toResponse($request)
    {
        return response()->json([
            'resp' => "success"
        ],200);
    }
}

FortifyServiceProviders

代码语言:javascript
复制
<?php

namespace App\Providers;

use App\Actions\Fortify\CreateNewUser;
use App\Actions\Fortify\ResetUserPassword;
use App\Actions\Fortify\UpdateUserPassword;
use App\Actions\Fortify\UpdateUserProfileInformation;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;
use Laravel\Fortify\Fortify;
use App\Http\Responses\LoginResponse;


class FortifyServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {

    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Fortify::createUsersUsing(CreateNewUser::class);
        Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
        Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
        Fortify::resetUserPasswordsUsing(ResetUserPassword::class);

        RateLimiter::for('login', function (Request $request) {
            $email = (string) $request->email;

            return Limit::perMinute(15)->by($email.$request->ip());
        });

        $this->app->singleton(LoginResponseContract::class, LoginResponse::class);
    }

这会继续返回{two-factor:false}

我还通过更新FortifyServiceProvider's register method上的fortify登录响应来尝试:(这个完全不同,在创建LoginResponse类之前)

代码语言:javascript
复制
public function register()
{
    $this->app->instance(LoginResponse::class, new class implements LoginResponse {
        public function toResponse($request)
        {
            return response()->json([
                'resp' => 'success'
            ],200);
        }
    });
}

但是,在登录时,我仍然收到这个响应,{two-factor: false},我缺少什么,应该在哪里更新,以便在fortify上获得正确的登录响应。我用防御工事和圣殿来做拉拉温泉。

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 06:34:41

不确定出了什么问题,但是您可以按照这个过程来检查这是否真的有效。

基本上,您所做的是正确的--这就是您如何找到bug的方法。

  1. ,而不是在FortifyServiceProvider上写这一行,而是写在AppServiceProvider's引导方法上。

如果

  1. 有效(而且应该是),您应该确认是否正确地设置了Fortify,您应该检查文档上的每一行,以检查是否遗漏了什么。https://laravel.com/docs/8.x/fortify

  1. ,以防万一,如果您想缩小范围,我不确定您是否在config/app中包含了App\Providers\FortifyServiceProvider::class,。因此,它从不触发FortifyServiceProvider,为了确认,您可以在FortifyServiceProvider's引导方法上编写FortifyServiceProvider's

请查收,让我知道你的发现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70950081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档