Убедитесь, что ваши пользователи аутентифицированы с использованием современных технологий, таких как Axios, JWT и TypeScript.
Проверка подлинности пользователя - важная часть создания современного веб-приложения. Сегодня мы рассмотрим общий подход с использованием JWT-доступа и токенов обновления с помощью Axios. Примеры будут написаны на TypeScript, но также должны работать на простом JavaScript. Если вас это интересует, к образцу кода можно получить доступ по этой ссылке на песочницу кода: https://codesandbox.io/s/react-typescript-n8hmb?fontsize=14
Установка зависимостей
Просто запустите npm i jsonwebtoken axios -S
и, если вы используете TypeScript, обязательно сохраните как зависимость разработчика npm i typescript -D
.
Настройка утилиты аутентификации
Чтобы создать несколько многоразовых функций, которые взаимодействуют с API localStorage браузера и нашей логикой JWT, мы создадим файл утилиты аутентификации auth.ts
. Это будет содержать логику для определения того, аутентифицирован ли пользователь до того, как мы выполним вызов API. Этот файл также будет предоставлять функции, которые дадут нам доступ к извлечению и установке токенов доступа и обновления, когда они должны быть обновлены.
Выполнение HTTP-запросов с помощью Axios
В нашей интеграции с Axios мы хотим предоставить функции, которые дадут нам доступ к внешним API, которые будут выполнять аутентификацию за нас. Мы хотели бы иметь контракт, который требует от нас только указать конечную точку и любые соответствующие данные. Давайте посмотрим, как это можно сделать. Назовем этот файл api.ts
.
Здесь у нас есть вспомогательная функция performAuthenticatedRequest
, которую можно использовать для предоставления методов get
, post
, put
и delete
для выполнения HTTP-запросов к любому указанному нами внешнему API.
Вам нужно будет реализовать логику для получения нового токена доступа для токена обновления на вашем сервере - или использовать такую службу, как Auth0, которая сделает это за вас.
Заключение
Вот и все! Не тонна кода, но важно понимать разделение логики здесь и создавать функции многократного использования, которые позволяют нам проходить аутентификацию и взаимодействовать с внешними API.
Хотите узнать больше о TypeScript?
Спасибо за чтение и удачи в ваших проектах! Оставьте комментарий или напишите мне, если у вас есть вопросы.