O projeto de código aberto recomendado para todos hoje é superimpressionante e pode ser o framework de autorização Java mais totalmente funcional da história!
Este projeto de código aberto é: sa-token.
Para mais materiais de entrevista e tutoriais em vídeo dos principais fabricantes, você pode clicar para entrar diretamente e obtê-los gratuitamente! Senha: CSDN
O que é Sa-Token?
sa-token é uma estrutura leve de autenticação de permissão Java, que resolve principalmente uma série de problemas relacionados a permissão, como autenticação de login, autenticação de permissão, sessão de sessão, logon único, OAuth2.0, etc.
A estrutura é adaptada para serviços comuns, como expulsar pessoas, renovação automática, separação de front-end e back-end, sessões distribuídas, etc., e por meio de sa-token, você pode implementar a parte de autenticação de autorização do sistema de forma minimalista maneira
Em comparação com outras estruturas de autorização, o sa-token tem as seguintes vantagens:
- Simples: estrutura de inicialização de configuração zero, uso real e pronto para uso, baixo custo para começar
- Poderoso: Dezenas de recursos relacionados a permissões foram integrados e soluções que cobrem a maioria dos cenários de negócios
- Fácil de usar: chamadas de API suaves e suaves e um grande número de recursos avançados podem ser implementados com apenas uma linha de código
- Alta expansão: quase todos os componentes fornecem interfaces de expansão e mais de 90% da lógica pode ser reescrita sob demanda
Com o sa-token, todos os seus problemas de autenticação de autoridade não são mais um problema!
O que o Sa-Token pode fazer?
- Autenticação de login - autenticação de login fácil e fornece cinco tipos de valores de subcenário
- Verificação de permissão - adapte-se ao modelo de permissão RBAC, funções diferentes têm autorizações diferentes
- Sessão - um centro de cache de dados profissional
- Expulse as pessoas offline - remova imediatamente os usuários ofensivos offline
- Extensão da camada de persistência - pode integrar Redis, Memcached e outros middleware de cache profissional, reiniciar dados sem perda
- Sessão distribuída - fornece duas soluções de sessão distribuída de integração jwt e data center compartilhado
- Logon único um lugar para fazer login, em qualquer lugar
- Simule a conta de outra pessoa - opere quaisquer dados de status do usuário em tempo real
- Troca temporária de identidade - mudar temporariamente a identidade da sessão para outra conta
- Cenários de separação frontal e traseira no modo sem cookies, como APP, miniaplicativo, etc.
- Login mútuo exclusivo no mesmo computador e telefone celular QQ semelhante ao final estão online ao mesmo tempo, mas login mutuamente exclusivo em dois telefones celulares
- Sistema de autenticação de várias contas - por exemplo, a tabela de usuário e a tabela de administração de um projeto de shopping são autenticadas separadamente
- Geração sofisticada de tokens - seis estilos de tokens integrados e estratégias personalizadas de geração de tokens
- A autenticação anotada separa elegantemente a autenticação do código comercial
- Autenticação de interceptação de rota - de acordo com a autenticação de interceptação de rota, pode ser adaptada para o modo de repouso
- Renovação automática - fornece duas estratégias de expiração de token, que podem ser usadas de maneira flexível e podem ser renovadas automaticamente
- Gerenciamento de conversas - fornece uma interface de consulta de conversas conveniente e flexível
- Integração automática de configuração de injeção-zero de componentes com Spring e outras estruturas
- Mais funções estão sendo integradas ... —— Se você tiver boas idéias ou sugestões, seja bem-vindo para se juntar à comunicação do grupo ( clique para entrar diretamente na comunicação do grupo, senha: CSDN )
Exemplo de código
A chamada de API do sa-token é muito simples, quão simples é? Tome a verificação de login como exemplo, você só precisa de:
// 在登录时写入当前会话的账号id
StpUtil.setLoginId(10001);
// 然后在任意需要校验登录处调用以下API
// 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
StpUtil.checkLogin();
Até agora, concluímos a autorização de login com a ajuda da estrutura do token sa!
Sua cabecinha pode estar cheia de pontos de interrogação neste momento, é simples assim? E o realm personalizado? E os filtros globais? Não preciso escrever vários arquivos de configuração?
Na verdade, sou responsável por dizer a você aqui que no sa-token, a autorização de login é tão simples que não há necessidade de filtros globais e nenhuma configuração bagunçada! Apenas esta simples chamada de API é necessária para completar a autorização de login da sessão!
Quando você estiver farto de Shiro, Security e outras estruturas, entenderá como o design da API do sa-token é atualizado em relação a essas estruturas antiquadas tradicionais!
Exemplo de autenticação de permissão (apenas sessões com usuário: permissão para adicionar podem inserir a solicitação)
@SaCheckPermission("user:add")
@RequestMapping("/user/insert")
public String insert(SysUser user) {
return "用户增加";
}
Expulsar uma conta offline (isso lançará uma NotLoginException quando a outra parte acessar o sistema novamente)
// 使账号id为10001的会话注销登录
StpUtil.logoutByLoginId(10001);
Além dos exemplos acima, sa-token também pode completar as seguintes funções com uma linha 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); // 将当前会话身份临时切换为其它账号
Endereço do projeto de código aberto:
https://github.com/click33/sa-token
Benefícios do leitor
Obrigado por ver aqui!
Compilei muitas das últimas perguntas da entrevista sobre Java para 2.021 (incluindo respostas) e notas de estudo sobre Java aqui, conforme mostrado abaixo
As respostas às perguntas da entrevista acima são organizadas em notas de documento. Bem como entrevistas também compilou algumas informações sobre alguns dos fabricantes e entrevista Zhenti última coleção 2021 (ambos documentando uma pequena parte da captura de tela) grátis para que todos possam compartilhar, se necessário pode clicar para inserir o sinal: CSDN! Grátis para compartilhar ~
Se você gostou deste artigo, por favor, encaminhe-o e goste.
Lembre-se de me seguir!