这是我的代码:
我的LoginResponse
<?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
<?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类之前)
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上获得正确的登录响应。我用防御工事和圣殿来做拉拉温泉。
发布于 2022-02-02 06:34:41
不确定出了什么问题,但是您可以按照这个过程来检查这是否真的有效。
基本上,您所做的是正确的--这就是您如何找到bug的方法。
FortifyServiceProvider上写这一行,而是写在AppServiceProvider's引导方法上。如果
Fortify,您应该检查文档上的每一行,以检查是否遗漏了什么。https://laravel.com/docs/8.x/fortifyconfig/app中包含了App\Providers\FortifyServiceProvider::class,。因此,它从不触发FortifyServiceProvider,为了确认,您可以在FortifyServiceProvider's引导方法上编写FortifyServiceProvider's。。
请查收,让我知道你的发现。
https://stackoverflow.com/questions/70950081
复制相似问题