Angular-ionic 4: функция аутентификации иногда дает сбой и работает в другой раз - PullRequest
0 голосов
/ 17 октября 2019

У меня есть приложение, созданное с помощью 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',
        ]);
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...