У меня есть проект веб-API, выделенный с помощью Angular, и я хочу его защитить, используя токен JWT. У меня уже есть проверка подлинности пользователя/пароля, поэтому я думаю, что мне просто нужно реализовать часть JWT.
Я полагаю, что я остановился на JwtAuthForWebAPI, поэтому пример использования этого будет замечательным.
Я предполагаю, что любой метод, не украшенный [Authorize], будет вести себя так, как он есть всегда, и что любой метод, украшенный [Authorize], будет 401, если токен, переданный клиентом, не совпадает.
Что я еще не могу понять, как отправить маркер обратно клиенту при первоначальной аутентификации.
Я пытаюсь использовать магическую строку для начала, поэтому у меня есть этот код:
RegisterRoutes(GlobalConfiguration.Configuration.Routes);
var builder = new SecurityTokenBuilder();
var jwtHandler = new JwtAuthenticationMessageHandler
{
AllowedAudience = "http://xxxx.com",
Issuer = "corp",
SigningToken = builder.CreateFromKey(Convert.ToBase64String(new byte[]{4,2,2,6}))
};
GlobalConfiguration.Configuration.MessageHandlers.Add(jwtHandler);
Но я не уверен, как это сначала возвращается к клиенту. Я думаю, что я понимаю, как обрабатывать это на клиенте, но бонусные баллы, если вы также можете показать сторону Angular этого взаимодействия.