Я использовал Spring Security, используя Redis Cache Token. Я сохраняю токен в redis, который выглядит следующим образом:
@Bean
public TokenStore redisTokenStore() {
return new RedisTokenStore(redisConnectionFactory);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager)
.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
.tokenStore(redisTokenStore()) // registering redisTokenStore bean
.tokenEnhancer(new CustomTokenEnhancer());
}
Сохраняет успех в redis. Но я тоже хочу сохранить токен на mysql. Я хочу сохранить токен как: Redis и база данных. Но я, когда я использовал:
@Bean
public TokenStore tokenStore() {
return new JdbcTokenStore(dataSource);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager)
.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
.tokenStore(redisTokenStore()) // registering redisTokenStore bean
.tokenStore(tokenStore())
.tokenEnhancer(new CustomTokenEnhancer());
}
это не работает. Только сохранить в мой редис. Это не сохранить в моей базе данных. Но когда я комментирую Redis Bean. Это сохранить в базе данных.
У меня есть три вопроса:
- Как реализовать токен сохранить как Redis и JDB c
- Я использую OTP-код для аутентификации телефонные номера. Нужно ли создавать дополнительные токены для этого otp-кода.
- В чем разница между паролем и паролем