2015-07-30 3 views
1

Я пытаюсь внедрить OAUTH2 для своего веб-приложения, но даже несмотря на то, что вход в приложение работает, обновления токенов приводят к ошибке «invalid_grant» HTTP 400. В частности, проект представляет собой ASP.NET WebAPI с провайдером OWIN OAuth. Это убило меня в течение нескольких дней без везения, поэтому любая помощь будет оценена :)OAUth2 ASP.NET invalid_grant

ответ

0

Вы установили OAuthAuthorizationServerOptions.RefreshTokenProvider?

Если вам нужен образец, песочница проект Katana содержит минимальную реализацию, показывающую, как вы можете легко настроить его для защиты и сериализации токенов обновления с помощью блока защиты данных (машинные ключи на IIS): https://github.com/jchannon/katanaproject/blob/master/tests/Katana.Sandbox.WebServer/Startup.cs#L169-L173

app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions { 
    RefreshTokenProvider = new AuthenticationTokenProvider { 
     OnCreate = CreateRefreshToken, 
     OnReceive = ReceiveRefreshToken, 
    } 
}); 

private void CreateRefreshToken(AuthenticationTokenCreateContext context) { 
    context.SetToken(context.SerializeTicket()); 
} 

private void ReceiveRefreshToken(AuthenticationTokenReceiveContext context) { 
    context.DeserializeTicket(context.Token); 
} 

Если он все еще не работает, попробуйте включить трассировку, чтобы определить основную причину ошибки invalid_grant: http://katanaproject.codeplex.com/wikipage?title=Debugging&referringTitle=Documentation

Смежные вопросы