Должен ли токен быть в маршруте?

Я видел маршрут, содержащий токен, в проекте Asp.net. Я не кодирую в бэкэнде, но это не выглядит безопасным. Я не уверен, стоит ли делать такие вещи.

 [HttpGet("{id}/{token}")] `
 ...

Если это не рекомендуется, как мне работать с HTTP-заголовками? Если я отправлю токен с заголовками, как я должен/должен получить токен и работать с ним?

Спасибо вам, ребята.


person Cara    schedule 20.12.2019    source источник


Ответы (2)


Нет, это совсем не рекомендуется. Токен должен быть размещен в заголовках, и вы можете получить к нему доступ, например, с привязкой [FromHeader], или в .net Core 2+ с помощью

var token = Request.Headers["Authorization"];
person Svilen Yanovski    schedule 20.12.2019

Нет, это не лучшая практика .

Обычно вы отправляете токен в заголовке Authorization вашего запроса, например:

Authorization: Bearer eyJ.....

в вашем контроллере на стороне сервера вы украшаете методы или весь контроллер атрибутом [Authorize].

[Authorize]
[HttpGet]
...

Промежуточное программное обеспечение позаботится обо всем остальном, что означает, что оно проверяет наличие токена и проверяет его, а также отправляет ответ, когда токен отсутствует или недействительный / просроченный токен. В коде вашего контроллера вам не нужно напрямую обрабатывать токен. Вот краткое введение в тему.

person jps    schedule 20.12.2019