A diferença entre token de token comum e token de token jwt e cenários de uso

Diretório de artigos

1. Classificação de tokens

URL de referência do token SpringSecurityOauth2
: https://www.yuque.com/gaoxi-dj1fr/fxgaxe/ivvpqc

1. O papel dos tokens comuns : identifica exclusivamente as informações do usuário armazenadas no banco de dados ou na memória . Durante a autenticação, o Spring Security usa tokens comuns para consultar as informações do usuário no banco de dados.
2. O papel dos tokens jwt : em tokens jwt Ele armazena as informações do usuário durante a autenticação, o SpringSecurity pode analisar as informações do usuário do token jwt sem usar um banco de dados para armazenamento.

1. Token Comum

O token comum é um token sem sentido         emitido por SpringSecurityOauth2 para o cliente . Quando o token é emitido, SpringSecurityOauth2 armazena as informações do usuário no local de armazenamento especificado pelo programa e usa o token comum para identificar exclusivamente as informações armazenadas. Quando o usuário carrega o token novamente Ao acessar com um token, o Spring Security Oauth2 consultará as informações do usuário de acordo com o token e, em seguida, perceberá a restrição da função de autoridade.

        Os tokens comuns precisam de um local para armazenar informações do usuário, que pode ser memória ou banco de dados (Redis, Mysql).

        Com base no armazenamento do banco de dados (pegue o Redis como exemplo)

①Com base na forma como o Redis armazena as informações do usuário, o servidor de autenticação armazena as informações do usuário no banco de dados Redis especificado
②Quando o serviço de recurso obtém o access_token, ele obterá as informações do usuário do Redis
③Aplicável em cenários de microsserviço

2. Token JWT

        O método do token jwt não requer a intervenção do banco de dados. O token jwt contém as informações do usuário. Quando SpringSecurityOauth emitir o token, ele colocará as informações do usuário no token JWT. Quando o usuário tiver o token JWT, SpringSecurityOauth dele Obtenha informações do usuário e realizar o controle das permissões do usuário.

jwt não requer um back-end para armazenamento.
①Servidor de autenticação baseado no token JWT, as informações do usuário são armazenadas no token
②Quando o serviço de recurso obtém o access_token, ele analisará o access_token do tipo jwt e as informações do usuário serão obtidas dele
③Não é aplicável em cenários de microsserviço

2. Cenários de aplicação

Quais são as vantagens de usar jwt ou redis e token para a interface do servidor APP
URL de referência: https://blog.csdn.net/u014756827/article/details/103047695

1. Julgando da perspectiva estrita se a autoridade é necessária

        O popular jwt tem uma falha de projeto. Ele transmite as informações do usuário por meio de texto cifrado, portanto, o servidor não pode fechar a operação de autorização de login do usuário sob essa estrutura básica. Se o texto cifrado jwt do usuário for roubado, o hacker pode fazer login como usuário e até mesmo se você souber que o texto cifrado está perdido, não poderá fechar o texto cifrado jwt roubado. Para lidar com esse problema, você pode usar o período de validade de verificação interna jwt e o modo de lista negra jwt, mas o período de validade nunca pode interromper a autorização jwt no tempo, o que é uma solução temporária em vez de uma solução permanente. O modo de lista negra do jwt requer um banco de dados ou memória para armazenar a lista negra, portanto, isso realmente viola o princípio de design sem banco de dados do jwt.

        Portanto, se projetado estritamente de acordo com os dois modos, o jwt é mais adequado para design de servidor com baixo nível de segurança, como blogs comuns, leitores etc. não causará perda grave do usuário, mas pode obter alto desempenho de serviço.

        O modo token deve cooperar com o banco de dados para armazenamento e consulta, portanto, o desempenho é baixo, mas o modo token pode obter o fechamento oportuno da autorização, e a autorização de login pode ser vista e verificada, e cada token terá um registro correspondente . Portanto, o modo token é adequado para sistemas com alta segurança e análise de informações, como login do usuário, como sistemas governamentais e sistemas de pagamento, que não permitem que tokens de alta autoridade sejam roubados, mas não podem ser fechados a tempo.

        jwt, adequado para sistemas leves e sistemas com permissões soltas.
        token, adequado para sistemas com requisitos estritos no sistema de peso e permissões.

3. Referência

Quais são as vantagens de usar jwt ou redis e token para a interface do servidor APP
URL de referência: https://blog.csdn.net/u014756827/article/details/103047695

Acho que você gosta

Origin blog.csdn.net/liuqinhou/article/details/132010153
Recomendado
Clasificación