Spring boot 2 и OAUTH2 создают токен доступа и refre sh и сохраняют его в tokenStore - PullRequest
0 голосов
/ 18 марта 2020

У меня есть причина, чтобы сгенерировать токен доступа и обновить sh токен для пользователя и сохранить его в базе данных.

Как TokenStore Я использую JdbcTokenStore (кстати. 1) это лучший метод?)

Мой текущий код:

      User u= getOrCreateUser(payload.getEmail());
      DefaultTokenServices defaultTokenServices = new DefaultTokenServices();
      defaultTokenServices.setTokenStore(tokenStore);

      String clientId = "acme";
      boolean approved = true;

      OAuth2Request oAuth2Request = new OAuth2Request(Map.of(), clientId,
              parseUserAuthorities(u), approved, Set.of("SCOPE_READ", "SCOPE_WRITE"),
              Set.of("/"), null, Set.of("code"), Map.of());

      UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(u, null, parseUserAuthorities(u));
      OAuth2Authentication auth = new OAuth2Authentication(oAuth2Request, authenticationToken);
      OAuth2AccessToken accessToken = defaultTokenServices.createAccessToken(auth);
      tokenStore.storeAccessToken(accessToken, auth);
//        tokenStore.storeRefreshToken(accessToken.getRefreshToken(), auth);
      System.out.println(accessToken.getRefreshToken());
      return accessToken;

Приведенный выше код генерирует токен доступа и также сохраняет его в базе данных. Но,

Это правильное решение? Ток refre sh равен нулю, почему? Если я использую этот сгенерированный токен для конечной точки, где только может быть аутентифицированный запрос, у меня нет access. Не лучше ли реализовать токен JWT вместо этого?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...