示例#1
0
        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            _tokensFactory = (ITokensFactory)context.HttpContext.RequestServices.GetRequiredService(typeof(ITokensFactory));

            if (context.ActionDescriptor is ControllerActionDescriptor descriptor)
            {
                var attributes = descriptor.MethodInfo.CustomAttributes;
                if (attributes.Any(x => x.AttributeType == typeof(AllowAnonymousAttribute)))
                {
                    return;
                }
            }

            var         authHeader  = (String)context.HttpContext.Request.Headers["Authorization"];
            TokenStatus tokenStatus = TokenStatus.Valid;

            if (!string.IsNullOrEmpty(authHeader))
            {
                var token = GetCleanToken(authHeader);
                tokenStatus = await ValidateToken(token);

                if (tokenStatus == TokenStatus.Valid)
                {
                    return;
                }
            }

            var error = GetErrorByTokenStatus(tokenStatus);

            context.Result = new ObjectResult(error)
            {
                StatusCode = (int)error.HttpStatusCode,
            };
        }
示例#2
0
 public TokensService(IUserRepository userRepository,
                      ITokensFactory factory, IMapper mapper)
 {
     _userRepository = userRepository;
     _tokensFactory  = factory;
     _mapper         = mapper;
 }
 public TokenController(IConfiguration config, ILogger <TokenController> logger, IClaimsFactory claimsfactory, ITokensFactory tokensfactory)
 {
     _logger        = logger;
     _config        = config;
     _claimsfactory = claimsfactory;
     _tokensfactory = tokensfactory;
 }
示例#4
0
 public TokensService(IUsersRepository usersRepository
                      , IPasswordService passwordService
                      , IMapper mapper
                      , ITokensFactory tokenFactory
                      , ILogger <TokensService> logger
                      //, IOptions<GoogleSettings> googleSettings
                      )
 {
     _usersRepository = usersRepository;
     _passwordService = passwordService;
     _mapper          = mapper;
     _tokenFactory    = tokenFactory;
     _logger          = logger;
     //_googleSettings = googleSettings;
 }
示例#5
0
 public VerifyTokenSenderMiddleWare(RequestDelegate next, ITokensFactory tokenservice)
 {
     this.next     = next;
     _tokenService = tokenservice;
 }
示例#6
0
 public AuthorizationFilter(ITokensFactory tokenService
                            , ILogger <AuthorizationFilter> logger)
 {
     _tokenService = tokenService;
     _logger       = logger;
 }