【发布时间】:2023-03-15 05:20:01
【问题描述】:
我正在使用 Laravel 8,并且我正在使用内置的 Auth 模块。我正在使用 ajax 请求使用移动设备登录。当用户登录和页面重定向时,我得到错误/未定义的路由。我附上错误的屏幕截图。 我的ajax代码是,
$.ajax({
type: "POST",
url: "/login",
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
'mobile' : user.phoneNumber
},
success: function (response){
if (response.status === true){
// console.log('here')
// debugger
// window.location.reload();
}
window.location = response.url;
}
});
我的控制器是,在这里我检查用户是否存在登录它,如果不存在则重新加载,然后创建新的并重定向到仪表板。如果用户不存在它工作正常如果用户存在我面临的问题
public function login(Request $request)
{
// Check validation
$this->validate($request, [
'mobile' => 'required|regex:/[0-9]{10}/',
]);
// Get user record
$user = User::where('mobile', $request->mobile)->first();
if($user){
// Check Condition Mobile No. Found or Not
if($request->mobile != $user->mobile) {
return response()->json(
[
'status' => false,
'message' => 'Your mobile number not match in our system..!!'
], Response::HTTP_OK
);
}
// Set Auth Details
Auth::login($user);
return \response()->json(
[
'status' => true,
'message' => 'Login Successfully'
], Response::HTTP_OK
);
}else{
Cookie::queue('otpVerified', true);
Session::put('mobile',$request->mobile);
return response()->json(
[
'status' => false,
'message' => 'User Not Exist',
'url' => route('register')
], Response::HTTP_OK
);
}
}
我的路线文件是,
Route::get('language/{key}', [SwitchLanguageController::class, 'switchLanguage'])->name('language');
Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register')->middleware(['otpVerify']);
Auth::routes();
Route::group(['middleware' => 'auth'], function (){
Route::get('/404', [\App\Http\Controllers\ErrorController::class, 'notFound'])->name('404');
Route::get('/', [\App\Http\Controllers\Dashboard\DashboardController::class, 'index'])->name('dashboard');
});
我该如何解决这个问题。谢谢
【问题讨论】: