Авторизация JWT с Axios и Vue.js (Заголовок)

Я поставил вопрос, чтобы определить, должно ли быть определено какое-либо значение в строке, по крайней мере, n раза. Чтобы понять это, я решил отсортировать копию каждой строки с помощью qsort из стандартной библиотеки C, а затем легко найти длины каждого запуска значений.

module sortrow
   use ISO_C_BINDING
   implicit none
   interface
      subroutine qsort(base, num, size, compar) bind(C,name='qsort')
         import
         implicit none
         integer base(*)
         integer(C_SIZE_T), value :: num, size
         procedure(icompar) compar
      end subroutine qsort
   end interface
   contains
      function icompar(p1, p2) bind(C)
         integer(C_INT) icompar
         integer p1, p2
         select case(p1-p2)
            case(:-1)
               icompar = -1
            case(0)
               icompar = 0
            case(1:)
               icompar = 1
         end select
      end function icompar
end module sortrow

program main
   use sortrow
   implicit none
   integer, parameter :: M = 3, N = 10
   integer i, j
   integer array(M,N)
   real harvest
   integer, allocatable :: row(:)
   integer current, maxMatch

   call random_seed
   do i = 1, M
      do j = 1, N
         call random_number(harvest)
         array(i,j) = harvest*3
      end do
   end do
   do i = 1, M
      row = array(i,:)
      call qsort(row, int(N,C_SIZE_T), C_SIZEOF(array(1,1)), icompar)
      maxMatch = 0
      current = 1
      do j = 2, N
         if(row(j) == row(j-1)) then
            current = current+1
         else
            current = 1
         end if
         maxMatch = max(maxMatch,current)
      end do
      write(*,'(*(g0:1x))') array(i,:),'maxMatch =',maxMatch
   end do
end program main

Пример прогона:

0 0 0 2 0 2 1 1 1 0 maxMatch = 5
2 1 2 1 0 1 2 1 2 0 maxMatch = 4
0 0 2 2 2 2 2 0 1 1 maxMatch = 5

1
задан TheCombatOwl 18 January 2019 в 20:55
поделиться

1 ответ

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

Самый простой способ работать с запросами API - это немного больше абстрагироваться от axios, автоматически добавлять токен авторизации и, возможно, предварительно обрабатывать полученный ответ. Например, вы можете захотеть обрабатывать некоторые ошибки глобально, а не в каждом конкретном случае, или хотите преобразовать запрос во что-то, что всегда одинаково.

Сначала вы хотите создать абстракцию, которая вызывает axios.request. Вы можете передать ему объект конфигурации, как описано здесь здесь . Сейчас для вас важнее всего пара «ключ-значение» headers, но вы можете расширить ее в будущем.

export default request (config) {
  const userToken = window.localStorage.getItem('usertoken');

  const requestConfig = { ...config };
  if (!requestConfig.headers) {
    requestConfig.headers = {};
  }

  if (userToken) {
    requestConfig.headers.authorization = `Bearer ${userToken}`;
  }

  return axios.request(requestConfig);
}

Теперь мы можем расширить это:

export default post (url, data = {}, config = {}) {
  return request({
    ...config,
    method: 'POST'
    url,
    data
  });
}

При проверке запроса в консоли разработчика вы должны увидеть, что, если токен пользователя правильно задан в localStorage, у вас есть дополнительный заголовок в вашем запросе, который отправляется на сервер.

0
ответ дан Sumurai8 18 January 2019 в 20:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: