как включить токен аутентификации в заголовок каждый раз, когда отправляется HTTP-запрос?

Я использую последнюю версию ngx-admin, я изменил свой app.module.ts следующим образом:

    NbAuthModule.forRoot({
  strategies: [
    NbPasswordAuthStrategy.setup({
      name: 'email',
      baseEndpoint: 'https://localhost:5001',
      token: {
        class: NbAuthJWTToken,
        key: 'token'
       },
       login: {
         // ...
         endpoint: '/api/Auth/login',
         redirect: {
          success: '/pages/dashboard',
          failure: null, // stay on the same page
        },
       },
       logout:{
        redirect: {
          success: '/auth/login',
          failure: null, // stay on the same page
        },
       },
       register: {
         // ...
         endpoint: '/api/Auth/register',
       },
    }),
  ],
  forms: {
    login: formSetting,
       register: formSetting,
       requestPassword: formSetting,
       resetPassword: formSetting,
       logout: {
         redirectDelay: 0,
       },
  },
}), 

],

  bootstrap: [AppComponent],
  providers: [AuthGuard,
    { provide: HTTP_INTERCEPTORS, useClass: NbAuthJWTInterceptor, multi: true },]

Я могу войти в систему и выйти из системы, и у меня есть токен, сохраненный в моем локальном хранилище с именем app_auth_token и содержащий:

{"name":"nb:auth:jwt:token","ownerStrategyName":"email","createdAt":1621867077000,"value":"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiJhZG1pbkBteWNhZmUuY29tIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsInJvbGUiOiJBZG1pbiIsIm5iZiI6MTYyMTg2NzA3NywiZXhwIjoxNjIyMDM5ODc3LCJpYXQiOjE2MjE4NjcwNzd9.C06e6bSPhlIl16A3iTtU3yGi8078K1I5aTy-QDVIiX_cHr6-HQQAFjgQRwWuI9tuzCe5G9HC7IFSeyN_dI4BuA"}

Я тестирую на своей странице получение данных с сервера, для которого требуется авторизация, но похоже, что в заголовке, отправленном на сервер, нет токена.

this.httpClient.get<User[]>(this.apiUrl+'user/list');

вот заголовок, который я копирую из браузера

GET /api/user/list HTTP/2
Host: localhost:5001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,id;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Origin: http://localhost:4200
DNT: 1
Connection: keep-alive
Referer: http://localhost:4200/
Pragma: no-cache
Cache-Control: no-cache

Я получаю код 401 UnAuthorized

Проверяю стоимость токена в почтальоне, он актуален и сработал. но как сказать nebular отправлять токен каждый раз, когда я выполнял http-запрос? Я прочитал документ, это должно происходить автоматически. я что-то пропустил ?


person nightingale2k1    schedule 25.05.2021    source источник


Ответы (1)


Нашел решение:

в app.module.js мне нужно вернуть false на NB_AUTH_TOKEN_INTERCEPTOR_FILTER

Я бы хотел, чтобы они поместили это в документы

  providers: [AuthGuard,
    { provide: NB_AUTH_TOKEN_INTERCEPTOR_FILTER, useValue: function () { return false; }, },
    { provide: HTTP_INTERCEPTORS, useClass: NbAuthJWTInterceptor, multi: true },]
person nightingale2k1    schedule 25.05.2021