Доступ к токену JWT из контроллера Spring Boot Rest

router.route('/product/name/:name')
.get(function(req, res) {

    var regex = new RegExp(req.params.name, "i")
    ,   query = { description: regex };

    Product.find(query, function(err, products) {
        if (err) {
            res.json(err);
        }

        res.json(products);
    });

});  
0
задан Tartar 27 February 2019 в 15:57
поделиться

2 ответа

Tartar,

UI отправляет маркер в качестве заголовка в запросе? если это так, то вы можете получить это значение, используя аннотацию @RequestHeader в своем методе

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<AppUser> getUsers(OAuth2Authentication auth, @RequestHeader (name="Authorization") String token) 

Примечание. В этом примере «Авторизация» - это имя заголовка, которое содержит токен, это может быть пользовательский заголовок имя.

Ура!

0
ответ дан Karl 27 February 2019 в 15:57
поделиться

Ответ, предоставленный Карлом, должен решить вашу проблему.

В дополнение к этому ответу вы можете использовать следующий метод и получить доступ к токену в любом месте кода

public static String getToken() {
    String token = null;
    var authentication = SecurityContextHolder.getContext().getAuthentication();
    if (authentication != null) {
      token = ((OAuth2AuthenticationDetails) authentication.getDetails()).getTokenValue();
    }
    return token;
  }
0
ответ дан Abhijay 27 February 2019 в 15:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: