NbAuthJWTToken не определен после успешного входа - PullRequest
0 голосов
/ 27 мая 2019

Я использую ngx-admin с пользовательским логином. После успешного входа в систему с помощью API управление перенаправляется на панель мониторинга, но NbAuthJWTToken не определен. Когда я обновляю страницу, страница показывает ошибку без перезагрузки страницы. Как я могу решить это? Пожалуйста, помогите мне. NbAuthJWTToken Undefined Ошибка обновления страницы

password-стратегии-options.ts [аутентификация / стратегии / пароль /]

token?: NbPasswordStrategyToken = {
    class: NbAuthJWTToken,
    //class: NbAuthSimpleToken,
    key: 'data.token',
    getter: (module: string, res: HttpResponse<Object>, options: NbPasswordAuthStrategyOptions) => getDeepFromObject(
      res.body,
      options.token.key,
    ),
  };

auth-guard.service.ts [возле app.module.ts]

export class AuthGuardService implements CanActivate {
  constructor(private authService: NbAuthService, private router: Router) {  }
  canActivate() {
    return this.authService.isAuthenticated()
      .pipe(
        tap(authenticated => {
          if (!authenticated) {
            this.router.navigate(['/login']);
          }
        }),
      );
  }
}

app.module.ts

@NgModule({
  declarations: [AppComponent],
  imports: [..........
    NbAuthModule,
    NbAuthModule.forRoot({
      strategies: [
        NbPasswordAuthStrategy.setup({
          name: 'email',
          baseEndpoint: 'api/',
          login: {
            endpoint: 'login',
          },
          token: {
            class: NbAuthJWTToken,
            key: 'token',
          }
        }),
      ],
      forms: {},
    }),
  ],
  bootstrap: [AppComponent],
  providers: [
    { provide: APP_BASE_HREF, useValue: '/' },
    AuthGuardService,
  ],
})

app-routing.module.ts

const routes: Routes = [
  { 
    path: 'pages', 
    canActivate: [AuthGuardService],
    loadChildren: 'app/pages/pages.module#PagesModule' 
  },
]

1 Ответ

0 голосов
/ 13 июня 2019

В ng-admin успешный вход в систему означает, что сервер ответил 100 http кодом. Ака без ошибок. Поэтому, если вы отправите пустой ответ без токена, он все равно войдет в систему. Я считаю, что он не может найти токен при отправке, потому что он не настроен правильно. Пожалуйста, поделитесь своим res.

...