Ищите способ переключения Identity.External cookie на токен JWT - PullRequest
0 голосов
/ 11 октября 2018

У меня есть приложение .net Core 2, использующее .net Core Identity.Я использую токены JWT, а не куки.У меня есть внешние провайдеры, такие как LinkedIn, но после тестирования опубликованного (для Azure) API я обнаружил, что файлы cookie Identity.External не исключаются браузером.Мой клиент - это приложение vue.js, загружаемое с сервера узлов, а не веб-приложение .net Core.

Я знаю, что могу управлять внешним входом в систему вручную, но мне любопытно, есть ли способиспользовать промежуточное ПО Identity?Может ли событие OnCreatingTicket в методе AddOAuth генерировать токен JWT для отправки обратно клиенту вместо файла cookie?

1 Ответ

0 голосов
/ 12 октября 2018

Я обнаружил, что cookie Identity.External принадлежит провайдеру, которого вы добавляете в файл Startup.cs.Поставщик (LinkedIn, Google и т. Д.) Отвечает на CallbackPath, определенный вами или включенным кодом поставщика.Затем запрос помещает файл cookie в ответ, НО сначала вызывается ExternalCallback в AccountController.Внутри ExternalCallback я возвращаю всю свою информацию о поставщике, которая обычно находится в cookie, моему клиенту.Затем я отправляю эту же информацию обратно в действие моего контроллера регистрации и делаю ее доступной при создании пользователя.Печенье не требуется.Фактически я удаляю файл cookie из ответа (переданного поставщиком, определенным при запуске) в конечной точке ExternalCallback - HttpContext.Response.Cookies.Delete ("Identity.External").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...