Проверить токен доступа - 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", чтобы обменять токен внешнего доступа на локальный? Какой подход правильный?

Ответы на вопрос(1)

Ваш ответ на вопрос