У меня есть приложение, созданное с помощью angular-ionic 4, для аутентификации пользователей.
Когда пользователь входит в систему, он не перенаправляется на домашнюю страницу, он остается в запасе на странице входа, даже если его учетные данные действительны, когда приложение закрывается и открывается снова, пользователь уже будет зарегистрирован,
Я действительно не знаю, что делаю не так, ниже мой код:
- Угловая: 8.1.2
- Ионная: 4.7.4
authentication.service.ts
login(email: String, password: String) {
return this.http.post<any>(`${this.env.API_URL}auth/login`, { email, password })
.pipe(map(token => {
this.storage.set('token', token)
.then(
() => {
console.log('Token Stored');
},
error => console.error('Error storing item', error)
);
this.currentUserSubject.next(token['user_object']);
return token;
}));
}
login.page.ts
async login() {
const thisref = this;
await this.loadingCtrl.create({
message: 'Authenticating...',
}).then((overlay) => {
this.loadingOverLay = overlay;
this.loadingOverLay.present();
});
this.authService.login(this.onLoginForm.value.email, this.onLoginForm.value.password)
.pipe(first())
.subscribe(
data => {
thisref.loadingOverLay.dismiss();
thisref.alertService.presentToastSuccess("Logged In");
thisref.navCtrl.navigateRoot('home');
return;
},
error => {
thisref.loadingOverLay.dismiss();
console.log(error);
thisref.alertService.presentToastError("Unauthorized");
// thisref.navCtrl.navigateRoot('home');
// console.log(error.error.message);//error.error.message returns "message" undefined when user input is valid
});
}
Код внутреннего интерфейса Laravel:
public function login(Request $request) {
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string',
//'remember_me' => 'boolean'
]);
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString(),
'user_object' => $user,
'message' => 'Authorized',
]);
}