2016-01-12 12 views
5

Мы пытаемся реализовать сервер oAth 2 и api (оба - разные серверы). (с использованием nodejs для всех), реализующий собственный сервер oauth2 и сервер api

enter image description here

мы используем https://github.com/FrankHassanabad/Oauth2orizeRecipes код авторизации потока

мы должны написать новую функцию validateToken в OAuth-сервер и просто ударил его из стороны апи для проверки подлинности этого пользователя только.

Мы думаем о том, чтобы держать пользователей и роли на стороне oauth, но нам нужно проверить их на стороне api, прежде чем дать ответ на вызов api.

Мы пытаемся использовать его для аутентификации, а также для cms и мобильных приложений. мы на правильном пути или чего-то не хватает.

ответ

0

(я столкнулся с аналогичной ситуацией в .Net, так и в контексте того, что)

Нет, если вы используете OAuth вам не придется писать новый метод проверки маркера. Как OAuthBearerAuthenticationProvider сделать это за кулисами

app.UseJwtBearerAuthentication(
      new JwtBearerAuthenticationOptions 
      { 
       AuthenticationMode = AuthenticationMode.Active, 
       AllowedAudiences = new[] { audience }, 
       IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[] 
       { 
        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret) 
       }, 
       Provider = new OAuthBearerAuthenticationProvider 
        { 
         OnValidateIdentity = context => 
         { 
          context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue")); 
          return Task.FromResult<object>(null); 
         } 
        } 

      }); 

(по моему опыту). Но если вы хотите, есть возможность настроить поставщика в вашем «Автозагрузка» файл:

app.UseJwtBearerAuthentication(
      new JwtBearerAuthenticationOptions 
      { 
       AuthenticationMode = AuthenticationMode.Active, 
       AllowedAudiences = new[] { audience }, 
       IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[] 
       { 
        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret) 
       }, 
       Provider = new CustomOAuthBearerProvider()       

      }); 

«CustomOAuthBearerProvider» наследует интерфейс «IOAuthBearerAuthenticationProvider», который подпись для RequestToken() метод предопределены, и этот метод вызывается перед любая проверка для токена. Поэтому я думаю, вы можете использовать его для своих пользовательских операций проверки на токене, а затем отправить токен для проверки OAuth.

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