README_ru.md
简体中文 | 繁體中文 | English | 日本語 | 한국어 | Русский
<p align="center"> </p> <h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">Sa-Token v1.46.0</h1> <h4 align="center">✨ Бесплатная универсальная платформа аутентификации Java-разрешений с открытым исходным кодом, делающая аутентификацию простой и элегантной! </h4> <p align="center"> <a href="https://gitee.com/dromara/sa-token/stargazers"></a> <a href="https://gitee.com/dromara/sa-token/members"></a> <a href="https://atomgit.com/dromara/sa-token/stargazers"></a> <a href="https://github.com/dromara/sa-token/stargazers"></a> <a href="https://github.com/dromara/sa-token/network/members"></a> <!-- <a href="https://github.com/dromara/sa-token/watchers"></a> --> <!-- <a href="https://github.com/dromara/sa-token/issues"></a> --> <a href="https://github.com/dromara/sa-token/blob/master/LICENSE"></a> </p> <!-- <p align="center"> Для изучения и тестирования извлеките главную ветку, dev находится в ветке разработки (выполните `git checkout master` в корневом каталоге) </p> --> <p align="center"> <a href="https://sa-token.com?way=readme" target="_blank"> Онлайн-документация: https://sa-token.com</a> | <a href="https://sa-token.com/doc.html#/more/demand-commit" target="_blank">Отправка запроса</a> </p>Оглядываясь назад на начало 2020 года, когда я представил первую строку кода для Sa-Token, я понимаю, что Java на рынке в то время не хватало не только простой и удобной в использовании инфраструктуры аутентификации, но и набора четких и самосогласованных идей проектирования архитектуры разрешений.
Поэтому в последние несколько лет я посвятил много времени написанию документации Sa-Token. Почти каждая глава, каждое предложение и каждое слово были неоднократно переработаны и тщательно отшлифованы, чтобы добиться максимально ясного, лаконичного и легкого для понимания выражения. Внимательно прочитайте документацию, и вы изучите не только саму структуру Sa-Token, но и лучшие практики проектирования разрешений в большинстве сценариев.
Sa-Token — это облегченная платформа аутентификации разрешений Java, которая в настоящее время имеет пять основных модулей: аутентификация входа, аутентификация разрешений, единый вход, OAuth2.0 и аутентификация микросервиса.
Вы все еще используете следующие функции? Стоп ⚠️ Пусть поможет Sa-Token!
Чтобы использовать Sa-Token в проекте SpringBoot, вам нужно всего лишь ввести зависимости в pom.xml:
<!-- Аутентификация органа Sa-Token, онлайн-документ: https://sa-token.com -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.46.0</version>
</dependency>
Помимо поддержки SpringBoot2 и Sa-Token, он также предоставляет пакеты интеграции для распространенных веб-платформ, таких как SpringBoot3/4, Solon и JFinal, что делает его по-настоящему пригодным для использования прямо из коробки.
<details> <summary><b>Простой пример отображения:</b> (нажмите, чтобы развернуть/свернуть)</summary>Sa-Token стремится завершить часть системы аутентификации разрешений простым и элегантным способом. Если взять в качестве примера аутентификацию при входе, вам нужно всего лишь:
// Вход в сеанс, параметр заполняется идентификатором учетной записи пользователя, вошедшего в систему.
StpUtil.login(10001);
Нет необходимости реализовывать какой-либо интерфейс или создавать какой-либо файл конфигурации. Вам нужно только вызвать этот статический код для завершения аутентификации входа в сеанс.
Если интерфейс требует входа в систему перед доступом к нему, нам нужно всего лишь вызвать следующий код:
// Проверьте, вошел ли текущий клиент в систему, если нет, выдайте исключение `NotLoginException`.
StpUtil.checkLogin();
В Sa-Token большинство функций можно решить одной строкой кода:
Выкидывать людей из сети:
// Отключить сеанс с идентификатором учетной записи 10077 в автономном режиме.
StpUtil.kickout(10077);
Аутентификация разрешения:
// Аутентификация аннотаций: только сеансы с разрешением `user:add` могут войти в этот метод.
@SaCheckPermission("user:add")
public String insert(SysUser user) {
// ...
return "用户增加";
}
Аутентификация перехвата маршрута:
// Разделите модули по маршрутам, и разные модули имеют разную аутентификацию.
registry.addInterceptor(new SaInterceptor(handler -> {
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// Еще модули...
})).addPathPatterns("/**");
Если вы раньше использовали Shiro или SpringSecurity, после перехода на Sa-Token вы испытаете качественный скачок.
<!-- Когда вам надоест такие фреймворки, как Shiro и SpringSecurity, вы поймете, насколько простой и элегантный дизайн API Sa-Token по сравнению с этими традиционными старыми фреймворками! --> </details> <details> <summary><b>Список основных модулей:</b> (нажмите, чтобы развернуть/свернуть)</summary>Единый вход Sa-Token разделен на три режима, которые могут удовлетворить требования аутентификации единого входа в 同域、跨域、共享Redis、跨Redis、前后端一体、前后端分离、纯 js、vue2、vue3、java 项目、非 java 项目 и других архитектурах:
| Системная архитектура | Модели принятия | Введение | Ссылки на документацию |
|---|---|---|---|
| Интерфейсная часть в том же домене + серверная часть в том же домене, что и Redis | Режим 1 | Общий сеанс синхронизации файлов cookie | Документ, Пример |
| Разные домены во внешнем интерфейсе + тот же серверный интерфейс, что и у Redis | Режим 2 | Сеанс распространения перенаправления URL | Документ, Пример |
| Разные внешние домены + разные внутренние Redis | Режим 3 | HTTP-запрос для получения сеанса | Документ, Пример |
c1.domain.com, c2.domain.com, c3.domain.com.http://a.com?id=1&name=2, а после успешного входа стало: http://a.com?id=1. Sa-Token-SSO имеет специальный алгоритм, гарантирующий, что параметры не будут потеряны, а исходный путь будет точно возвращен после успешного входа в систему.Модуль Sa-Token OAuth2 разделен на четыре режима авторизации для удовлетворения потребностей авторизации в различных сценариях.
| Модель авторизации | Введение |
|---|---|
| Формат кода авторизации | Стандартные шаги авторизации OAuth2: серверная сторона выпускает код, а клиентская сторона получает код кода и выкупает его для access_token |
| Скрытый | Альтернативный вариант: сервер использует перенаправление URL-адресов для прямой передачи access_token на клиентскую страницу |
| Тип пароля | Клиент напрямую обменивает пароль учетной записи пользователя на авторизацию access_token |
| Тип сертификата клиента | Серверный client_token для уровня клиента представляет авторизацию ресурса самого приложения |
Подробный справочный документ: https://sa-token.com/doc.html#/oauth2/readme
1. Достаточно ли функционален Sa-Token?
Семь лет напряженной работы: пять основных модулей (вход в систему, аутентификация, единый вход, OAuth2, микросервисы) + множество практических плагинов (короткий токен, интеграция jwt, подпись параметров API, авторизация ключа API...). Мы обеспечиваем не только аутентификацию разрешений, мы предоставляем универсальное решение.
2. Легко ли освоить Sa-Token?
Документация на китайском языке + комментарии к коду на китайском языке + китайское коммуникационное сообщество + большое количество блогов с практическими примерами + множество видеоуроков + большое количество выдающихся примеров интеграции проектов с открытым исходным кодом.
3. Много ли людей используют Sa-Token?
По состоянию на дату статистики (25 января 2026 г.) Sa-Token находится в:
Это данные, за которые многие разработчики проголосовали ногами. Я считаю, что эти данные могут доказать популярность Sa-Token лучше любых слов.
4. Какую авторитетную сертификацию имеет Sa-Token?
Награды включают, помимо прочего: Самый ценный проект с открытым исходным кодом Gitee GVP, Высококачественный проект с открытым исходным кодом GitCode G-Star, Индекс популярности TOP 30 проектов с открытым исходным кодом OSCHINA 2021, Одно из самых популярных китайских сообществ проектов с открытым исходным кодом OSCHINA 2022, Быстрорастущий проект с открытым исходным кодом Open Atomic Foundation 2023, Лучший проект организации Dromara (один), Подготовительный член Trusted Open Source Сообщество сообщества и сообщество открытого исходного кода «Dromara», где он работает. Выиграли второй приз в «Конкурсе инноваций и инвестиций в области развития Интернета в Китае 2024 года (с открытым исходным кодом)». Проект Gitee High Star (5000+звезд). Два лучших проекта Gitee с открытым исходным кодом для разработки веб-приложений в 2025 году.
5. Взимается ли плата за Sa-Token?
Sa-Token использует протокол с открытым исходным кодом Apache-2.0 и обещает, что сама платформа и онлайн-документы всегда будут бесплатными и открытыми. Конечно, если вы заинтересованы в спонсировании Sa-Token, мы не будем уклоняться от этого: Спонсорская ссылка. Мы будем регулярно синхронизировать список спонсоров с онлайн-дисплеем документов. (Одна вещь, которую вам следует отметить: это спонсорство является только дружественным спонсорством и не предполагает какого-либо коммерческого обмена)
6. Является ли Sa-Token инкапсулированным SpringSecurity? Это оболочка ApacheShiro?
нет. Sa-Token — это не бэкэнд-шаблон и не вторичная оболочка инкапсуляции для платформы xx, а чистый фреймворк собственной разработки, начинающийся с нуля, с нулевой зависимостью от основного пакета, полностью независимым и управляемым ядром архитектуры + интегрированной адаптацией многих основных фреймворков.
Есть и другие отличные кейсы с открытым исходным кодом, которые невозможно отобразить по одному. См.: Awesome-Sa-Token
Члены сообщества Sa-Token предоставили многоязычные версии реализации:
Мы искренне приглашаем разработчиков, более владеющих вышеуказанными языками, вместе создавать соответствующие версии. 🤝
Мы отдельно подготовили соответствующие примеры интеграции почти для всех технических моментов платформы. Этот сжатый пакет содержит в общей сложности более 60 демо: охватывающих все аспекты аутентификации и аутентификации, такие как аутентификация входа в систему Sa-Token, аутентификация органа, единый вход в систему, унифицированная аутентификация OAUth2, аутентификация микросервисов, аутентификация по ключу API, интеграция JWT, проверка подписи параметров межсистемного вызова и т. д.
Адрес загрузки: https://sa-token.com/doc.html#/more/download-demos
Группа связи QQ: 1098917026 Нажмите, чтобы присоединиться
Группа связи WeChat:
<!-- -->PS: Отсканируйте QR-код, чтобы добавить WeChat (примечание: sa-token), чтобы пригласить вас присоединиться к групповому чату.
Преимущества присоединения к групповому чату: