OWIN 인증을 사용하여 SPA 응용 프로그램을 작성하고 있습니다. 처음에 내 응용 프로그램이처럼 보였다 IIS와 나의 권한 부여 옵션에서 기본 응용 프로그램으로 실행하도록 만들어진 (TokenEndpointPath = "/ 토큰") 더 이상이다 있도록 그러나웹 API 2 OWIN 무기명 토큰 인증/토큰 경로 변경/교환 방법
OAuthOptions = new OAuthAuthorizationServerOptions
{
//Exposes Token endpoint
TokenEndpointPath = new PathString("/Token"),
//Use ApplicationOAuthProvider in order to authenticate
Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
AuthorizeEndpointPath = new PathString("/MyApp/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), //Token expiration => The user will remain authenticated for 14 days
AllowInsecureHttp = true
};
, 나는이 이동할 필요가없는거야 내 API 호출 모두가이 경로에서 이동합니다 기본 응용 프로그램하지만 기본 IIS 응용 프로그램 내 자식 응용 프로그램 :
http://localhost:22657/
로는 :
http://localhost:22657/MyApp
그래서,/토큰 경로는 더 이상 연결할 수 없습니다. 그래서, 난 할 내 TokenEndpointPath을 변경했을 :
TokenEndpointPath = new PathString("/MyApp/Token"),
그러나, 내 브라우저를 인증 할 때 성공적으로하지만, 서버의 응답 내 Index.cshtml 파일에서 HTML이 전화입니다 수 있습니다. WebApi가 요청을 처리하는 이유를 진단하는 방법을 알지 못합니다 (분명히 OWIN에서 처리되지 않습니다 .GrantResourceOwnerCredentials 메서드에 중단 점을 설정하면 중단 점에 도달하지 않습니다).
내 WebApi 경로 중 어느 것도 "토큰"으로 구성되어 있지 않습니다.
1) 엔드 포인트에서 무슨 일이 일어나고 있는지 그리고 베어러 토큰 대신 HTML이 반환되는 이유를 알고 있습니까? 아니면 문제 해결 방법을 알아야합니까?
업데이트 :
나는 그것이 인덱스를 지정하는 다음과 같은 기본 경로에 관련되어야합니다 같아요. 이로 인해/MyApp/Token에 대한 요청이 Home/Index로 라우트됩니다. 이 문제를 방지하기 위해 "{* url}"대신 사용할 수있는 다른 것이 있습니까?
routes.MapRoute(
name: "Default",
url: "{*url}",
defaults: new { controller = "Home", action = "Index" }
);