[英]Laravel 8 “fortify” redirect not working after registration on production
我已經為管理員和用戶設置了角色基礎身份驗證,以便在注冊和登錄后重定向到不同的路由,這在我的本地機器上非常好,但是當我部署到生產時,它重定向到我沒有在我的網絡中聲明的 /home。 php
FortifyServiceProvider.php
$this->app->singleton(
LoginResponseContract::class,
LoginResponse::class
);
$this->app->singleton(
TwoFactorLoginResponseContract::class,
TwoFactorLoginResponse::class
);
登錄響應.php
public function toResponse($request)
{
$role = \Auth::user()->role_id;
if ($request->wantsJson()) {
return response()->json(['two_factor' => false]);
}
$home = $role == 1 ? '/admin' : '/account';
return redirect()->intended($home);
}
路由服務提供者.php
public const ACCOUNT = '/account';
public const ADMIN = '/admin';
創建新用戶.php
$user = User::create([
'name' => $input['name'],
'username' => $input['username'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
'role_id' => 2,
'referrer_id' => $referrer->id ?? null,
]);
$user->notify(new WelcomeEmail($user));
return $user;
請提供任何幫助,我將不勝感激,過去兩天我一直被困
謝謝🙏
也許您本地和生產的 php 版本不同,因此某些 php 版本不適用於這種形式的 IF 使用這種方式:
public function toResponse($request)
{
$role = \Auth::user()->role_id;
if ($request->wantsJson()) {
return response()->json(['two_factor' => false]);
}
if($role == 1){
$home = '/admin';
}else{
$home ='/account';
}
return redirect()->to($home);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.