Я разрабатываю приложение ASP.NET Web API
, которое использует протокол OAuth
(owin
) для аутентификации моих клиентов. Через некоторое время после первоначальной версии API я добавил дополнительную проверку подлинности на основе форм (cookie based) и смешал приложение ASP.NET MVC
поверх него. Теперь, во время запуска яМикс аутентификации форм и проект OAuth для веб-API не возвращаются 401 в случае просроченного токена
// forms
app.UseCookieAuthentication(... options ...);
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// oauth
app.UseOAuthAuthorizationServer
Она работает идеально, и мои MVC пользователи могут позвонить своему API без необходимости быть заверены это круто. Единственный недостаток, который вызывает множество проблем, заключается в том, что когда мои клиенты API пытаются получить доступ к API с истекшим токеном вместо ошибки 401, я получаю 200 и html-ответы моей страницы входа.
Request:
GET https://server.com/api/v1/controller/action1
Authoration: bearer <expired token here>
Response:
200 <html>
Что мне нужно, так это то, что любой запрос API с истекшим токеном должен приводить к 403 ответам HTTP и странице входа в систему.
Можно ли достичь в моей смешанной среде или мне нужно разделить мое решение?