这是我的代码:
我的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}
我还尝试通过将 fortify 登录响应更新FortifyServiceProvider's register method
为:(这个完全不同,在创建 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 上获得正确的登录响应。我在 laravel 水疗中心使用 fortify 和 sanctum。