Проверить токен доступа - Asp.Net Identity
Я использую ASP.Net Identity для реализации внешних логинов. После входа пользователя в систему Google я получаю токен внешнего доступа Google. Затем я делаю второй вызов APIObtainLocalAccessToken () который обменивает маркер внешнего доступа на новый локальный.
ObtainLocalAccessToken()
звонкиVerifyExternalAccessToken () который проверяет токен внешнего доступа у провайдера, вручную делая http-вызовы и анализируя user_id.
Как я могу использовать удостоверение ASP.NET, чтобы удалить весь методVerifyExternalAccessToken()
?
Я верю вот что[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
для не так ли? Я хочу украситьObtainLocalAccessToken()
конечную точку с этим атрибутом и отправьте external_access_token в заголовок ({'Authorization' : 'Bearer xxx' }
), и это должно заполнитьUser.Identity
без необходимости вручную проверять токен внешнего доступа? Я считаю, что это цель, однако я не могу заставить ее работать. Я отправил действительный токен внешнего доступа от Google, и он был отклонен с 401.
У меня есть эта строка в Startup.Auth кстати:
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
AuthorizeEndpointPath = new PathString("/AccountApi/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
});
В качестве альтернативы можно использовать конечную точку "/ Token", чтобы обменять токен внешнего доступа на локальный? Какой подход правильный?