1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/thans-jwt-auth

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

JWT-AUTH

thinkphp пакет для аутентификации JSON Web Token (JWT). Поддерживает несколько способов передачи параметров: через заголовок, cookie и параметр. Включает в себя верификацию, верификацию с автоматическим обновлением и другие промежуточные программы.

Скачать демо thinkphp6.0

Поддержка Swoole

Требования к среде

  1. PHP ~8.1.0 || ~8.2.0
  2. thinkphp ^5.1.10 || ^6.0.0 || ^8.0.0

Для версии 2.x требуется PHP 8.1 или выше, для версий ниже 8.0 рекомендуется использовать версию 1.x

Описание

В настоящее время поддерживаются три основных типа алгоритмов шифрования: RSA, HASH, DSA. Каждый из них имеет длину 256, 384 и 512 бит. По умолчанию используется HS256 (hash 256-битное шифрование). Если необходимо изменить алгоритм шифрования, измените параметр ALGO. Доступные варианты:

  • HS256 — hash 256 бит;
  • HS384 — hash 384 бит;
  • HS512 — hash 512 бит;
  • RS256 — rsa 256 бит;
  • RS384 — rsa 384 бит;
  • RS512 — rsa 512 бит;
  • ES256 — dsa 256 бит;
  • ES384 — dsa 384 бит;
  • ES512 — dsa 512 бит.

Важно: RSA и DSA являются асимметричными алгоритмами шифрования. Помимо изменения параметра ALGO, необходимо настроить параметры PUBLIC_KEY и PRIVATE_KEY. Эти два параметра поддерживают только пути к файлам ключей. Если ключ защищён паролем, настройте параметр PASSWORD.

Установка

Шаг 1:

$ composer require thans/tp-jwt-auth

Шаг 2:

$ php think jwt:create

Эта команда создаст файлы jwt.php и .env. Не рекомендуется изменять jwt.php напрямую. В файле .env будет сгенерирован секрет случайным образом. Не изменяйте его произвольно и обеспечьте его безопасность.

Использование

Для маршрутов или модулей, требующих аутентификации, добавьте промежуточное ПО:

thans\jwt\middleware\JWTAuth::class,

Пример:

use thans\jwt\facade\JWTAuth;

$token = JWTAuth::builder(['uid' => 1]);//параметр для аутентификации пользователя, добавьте самостоятельно

JWTAuth::auth();//проверка токена

JWTAuth::refresh();//обновление токена, старый токен будет добавлен в чёрный список

$tokenStr = JWTAuth::token()->get(); //можно получить полный токен из запроса

$payload = JWTAuth::auth(); //можно проверить токен и получить часть payload из токена, например, uid

Описание обновления токена:

Срок действия токена по умолчанию составляет 60 секунд. Вы можете изменить его в файле env. refresh_ttl — это параметр, который определяет срок действия обновлённого токена в минутах. По умолчанию срок действия составляет 14 дней. После истечения срока действия токен добавляется в чёрный список. Чтобы включить автоматическое обновление, используйте промежуточное ПО thans\jwt\middleware\JWTAuthAndRefresh::class. После обновления токена он будет возвращён через header. Сохраните его. (Обратите внимание, что при первом обращении после истечения срока действия вы войдёте в систему нормально, а при втором обращении — в чёрный список.)

Способ передачи токена:

Вы можете настроить способ получения параметров и приоритет с помощью параметра token_mode в файле jwt.php. По соображениям безопасности рекомендуется отключить приём токенов через cookie, чтобы избежать конфликтов токенов в некоторых случаях разделения фронтенда и бэкенда.

  • Добавьте токен в URL как параметр. Имя ключа — token.
  • Добавьте токен в cookie. Имя ключа — token.
  • Добавьте токен в заголовок следующим образом: Authorization:bearer token значение.
  • Вы можете выбрать любой из трёх способов. Рекомендуется использовать заголовок.

Другие операции

  1. Добавить токен в чёрный список: JWTAuth::invalidate($token);
  2. Проверить, находится ли токен в чёрном списке: JWTAuth::validate($token);

Часто задаваемые вопросы

  • При использовании алгоритма RSA256 рекомендуется использовать текстовый формат. Пример:

Контакты и вознаграждения

Список вознаграждений

image

Ссылки и заимствования

https://github.com/tymondesigns/jwt-auth

Благодарности

  • JWT-Auth
  • PHP
  • lcobucci/jwt
  • thinkphp

Следующие шаги

  • Поддержка динамической конфигурации

Лицензия

MIT

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Аутентификация с использованием JSON Web Token для Thinkphp. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/thans-jwt-auth.git
git@api.gitlife.ru:oschina-mirror/thans-jwt-auth.git
oschina-mirror
thans-jwt-auth
thans-jwt-auth
master