¡Este puede ser el marco de autorización de Java más completo de la historia!

El proyecto de código abierto recomendado para todos hoy en día es súper asombroso, ¡y puede ser el marco de autorización de Java más funcional de la historia!
Inserte la descripción de la imagen aquí
Este proyecto de código abierto es: sa-token.

Para obtener más materiales para entrevistas y tutoriales en video de los principales fabricantes, puede hacer clic para ingresar directamente y obtenerlos gratis. Contraseña: CSDN

¿Qué es Sa-Token?

sa-token es un marco ligero de autenticación de permisos de Java, que resuelve principalmente una serie de problemas relacionados con los permisos, como la autenticación de inicio de sesión, la autenticación de permisos, la sesión de sesión, el inicio de sesión único, OAuth2.0, etc.

El marco está adaptado a servicios comunes como expulsión de personas fuera de línea, renovación automática, separación de front-end y back-end, sesiones distribuidas, etc., y a través de sa-token, puede implementar la parte de autenticación de autorización del sistema de forma minimalista. manera

En comparación con otros marcos de autorización, sa-token tiene las siguientes ventajas:

  1. Simple: marco de inicio de configuración cero, uso real listo para usar, bajo costo para comenzar
  2. Potente: se han integrado docenas de funciones relacionadas con permisos y soluciones que cubren la mayoría de los escenarios comerciales
  3. Facilidad de uso: llamadas API suaves y sedosas, y una gran cantidad de funciones avanzadas se pueden implementar con solo una línea de código
  4. Alta expansión: casi todos los componentes proporcionan interfaces de expansión y más del 90% de la lógica se puede reescribir bajo demanda.

¡Con sa-token, todos sus problemas de autenticación de autoridad ya no son un problema!

¿Qué puede hacer Sa-Token?

  • Autenticación de inicio de sesión: autenticación de inicio de sesión sencilla y proporciona cinco tipos de valores de subescenarios
  • Verificación de permisos: adaptarse al modelo de permisos RBAC, diferentes roles tienen diferentes autorizaciones
  • Sesión: un centro de caché de datos profesional
  • Expulsar a la gente fuera de línea: eliminar inmediatamente a los usuarios infractores fuera de línea
  • Extensión de la capa de persistencia: puede integrar Redis, Memcached y otro middleware de caché profesional, reiniciar los datos sin pérdida
  • Sesión distribuida: proporciona dos soluciones de sesión distribuida de integración jwt y centro de datos compartido
  • Inicio de sesión único: un lugar para iniciar sesión, en todas partes
  • Simule la cuenta de otra persona: opere cualquier dato de estado del usuario en tiempo real
  • Cambio de identidad temporal: cambia temporalmente la identidad de la sesión a otra cuenta
  • Escenarios de separación frontal y posterior del modo sin cookies, como APP, applet, etc.
  • El inicio de sesión exclusivo mutuo en el mismo teléfono móvil y computadora QQ similar al final está en línea al mismo tiempo, pero el inicio de sesión mutuamente exclusivo en dos teléfonos móviles
  • Sistema de autenticación de múltiples cuentas: por ejemplo, la tabla de usuarios y la tabla de administración de un proyecto de centro comercial se autentican por separado
  • Estilos de token incorporados de sexta generación de tokens de lujo y estrategias de generación de tokens personalizadas
  • Autenticación anotada: separa de manera elegante la autenticación del código comercial
  • Autenticación de interceptación de ruta: de acuerdo con la autenticación de intercepción de ruta, se puede adaptar al modo de descanso
  • Renovación automática: proporciona dos estrategias de vencimiento de tokens, que se pueden usar de manera flexible y se pueden renovar automáticamente
  • Gestión de conversaciones: proporciona una interfaz de consulta de conversación cómoda y flexible
  • Integración automática de la configuración de inyección cero de componentes con Spring y otros marcos
  • Se están integrando más funciones ... —— Si tiene buenas ideas o sugerencias, bienvenido a unirse a la comunicación grupal ( haga clic para ingresar directamente a la comunicación grupal, contraseña: CSDN )

Ejemplo de código

La llamada a la API de sa-token es muy simple, ¿qué tan simple es? Tome la verificación de inicio de sesión como ejemplo, solo necesita:

// 在登录时写入当前会话的账号id
StpUtil.setLoginId(10001);

// 然后在任意需要校验登录处调用以下API
// 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
StpUtil.checkLogin();

¡Hasta ahora, hemos completado la autorización de inicio de sesión con la ayuda del marco sa-token!

Tu cabecita puede estar llena de signos de interrogación en este momento, ¿es así de simple? ¿Qué pasa con el Reino personalizado? ¿Qué pasa con los filtros globales? ¿No necesito escribir varios archivos de configuración?

De hecho, soy responsable de decirles aquí que en sa-token, la autorización de inicio de sesión es tan simple, no hay necesidad de filtros globales, ¡y no hay configuración complicada! ¡Solo se requiere esta simple llamada a la API para completar la autorización de inicio de sesión de la sesión!

Cuando esté harto de Shiro, Security y otros marcos, comprenderá lo refrescante que es el diseño de la API de sa-token en relación con estos marcos tradicionales pasados ​​de moda.

Ejemplo de autenticación de permiso (solo sesiones con usuario: agregar permiso puede ingresar la solicitud)

@SaCheckPermission("user:add")
@RequestMapping("/user/insert")
public String insert(SysUser user) {
return "用户增加";
}

Elimine una cuenta fuera de línea (lanzará una NotLoginException cuando la otra parte acceda al sistema nuevamente)

// 使账号id为10001的会话注销登录
StpUtil.logoutByLoginId(10001);

Además de los ejemplos anteriores, sa-token también puede completar las siguientes funciones con una línea de código:

StpUtil.setLoginId(10001);                // 标记当前会话登录的账号id
StpUtil.getLoginId();                     // 获取当前会话登录的账号id
StpUtil.isLogin();                        // 获取当前会话是否已经登录, 返回true或false
StpUtil.logout();                         // 当前会话注销登录
StpUtil.logoutByLoginId(10001);           // 让账号为10001的会话注销登录(踢人下线)
StpUtil.hasRole("super-admin");           // 查询当前账号是否含有指定角色标识, 返回true或false
StpUtil.hasPermission("user:add");        // 查询当前账号是否含有指定权限, 返回true或false
StpUtil.getSession();                     // 获取当前账号id的Session
StpUtil.getSessionByLoginId(10001);       // 获取账号id为10001的Session
StpUtil.getTokenValueByLoginId(10001);    // 获取账号id为10001的token令牌值
StpUtil.setLoginId(10001, "PC");          // 指定设备标识登录
StpUtil.logoutByLoginId(10001, "PC");     // 指定设备标识进行强制注销 (不同端不受影响)
StpUtil.switchTo(10044);                  // 将当前会话身份临时切换为其它账号

Dirección del proyecto de código abierto:

https://github.com/click33/sa-token

Beneficios del lector

¡Gracias por ver aquí!
He compilado muchas de las últimas preguntas de la entrevista de Java de 2021 (incluidas las respuestas) y notas de estudio de Java aquí, como se muestra a continuación
Inserte la descripción de la imagen aquí

Las respuestas a las preguntas de la entrevista anteriores están organizadas en notas de documentos. Además de las entrevistas, también se recopiló información sobre algunos de los fabricantes y se entrevistó a la última colección 2021 de Zhenti (ambas documentan una pequeña parte de la captura de pantalla) gratis para que todos la compartan, los que lo necesiten pueden hacer clic para ingresar la señal: ¡CSDN! Libre para compartir ~

Si te gusta este artículo, reenvíalo y dale me gusta.

¡Recuerda seguirme!
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_49527334/article/details/114990312
Recomendado
Clasificación