0
MVC 및 API 컨트롤러가 병렬로 사용되는 프로젝트에서 작업하고 있습니다. API 컨트롤러에서 MVC 컨트롤러 및 토큰 기반 인증에 쿠키 기반 인증을 사용할 수 있습니까? 그것을 성취하는 방법?한 프로젝트에서 쿠키 및 토큰 기반 인증 paralelly 사용
문제는 - Startup.auth (아래)를 작성하고 [Authorize] 특성을 사용할 때 - 웹 API가 호출되는 동안 예상 한대로 작동하지 않기 때문에 쿠키를 확인하고 메소드를 실행할 수 있기 때문에 문제가됩니다. 토큰없이.
public partial class Startup
{
private string PublicClientId { get; set; }
private OAuthAuthorizationServerOptions OAuthOptions { get; set; }
public void ConfigureAuth(IAppBuilder app)
{
app.CreatePerOwinContext(DatabaseContext.Create);
app.CreatePerOwinContext<MobileUserManager>(MobileUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/AuthServices/SignIn"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<MobileUserManager, UserEntity, int>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => (id.GetUserId<int>()))
}
});
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(180),
Provider = new ApplicationOAuthProvider(PublicClientId),
RefreshTokenProvider = new ApplicationRefreshTokenProvider()
};
app.UseOAuthBearerTokens(OAuthOptions);
}
}