예제 #1
0
 internal static RefreshToken Create(
     Session session,
     AuthenticationGrantTypeRefreshToken authenticationGrantTypeRefreshToken,
     out string token)
 {
     return(new RefreshToken(session, authenticationGrantTypeRefreshToken, out token));
 }
        public Task <RefreshTokenIdentityDdto> ExecuteAsync(Identity identity,
                                                            AuthenticationGrantTypeRefreshToken authenticationGrantTypeRefreshToken)
        {
            identity.CreateRefreshToken(authenticationGrantTypeRefreshToken, out string token);

            return(Task.FromResult(new RefreshTokenIdentityDdto
            {
                Token = token
            }));
        }
예제 #3
0
 private RefreshToken(
     Session session,
     AuthenticationGrantTypeRefreshToken authenticationGrantTypeRefreshToken,
     out string token)
 {
     token   = String.Random(100);
     Session = session;
     AuthenticationGrantTypeRefreshToken = authenticationGrantTypeRefreshToken;
     Token       = token;
     TokenExpiry = Instant.Add(Clock.Now(), Duration.FromDays(2));
 }
예제 #4
0
        public async Task <RefreshTokenIdentityAdto> CreateRefreshTokenAsync(CreateRefreshTokenAdto createRefreshTokenAdto)
        {
            using (ITransaction transaction = _transactionManager.Create())
            {
                try
                {
                    Identity identity = await _identityCommandRepository.GetByIdAsync(createRefreshTokenAdto.IdentityId);

                    if (identity == null)
                    {
                        throw new BusinessApplicationException(ExceptionType.NotFound, "Identity not found");
                    }

                    AuthenticationGrantTypeRefreshToken authenticationGrantTypeRefreshToken = (AuthenticationGrantTypeRefreshToken)await
                                                                                              _authenticationServiceCommandRepository.GetSingleAsync(a => a is AuthenticationGrantTypeRefreshToken);

                    if (authenticationGrantTypeRefreshToken == null)
                    {
                        throw new BusinessApplicationException(ExceptionType.NotFound, "Refresh tokens are not configured");
                    }

                    RefreshTokenIdentityDdto refreshTokenIdentityDdto = await _createRefreshTokenCommand.ExecuteAsync(identity, authenticationGrantTypeRefreshToken);

                    await _identityCommandRepository.UpdateAsync(identity);

                    transaction.Commit();

                    return(new RefreshTokenIdentityAdto
                    {
                        Token = refreshTokenIdentityDdto.Token
                    });
                }
                catch (DomainValidationRuleException e)
                {
                    throw new BusinessValidationRuleApplicationException(e.ValidationResult);
                }
            }
        }
예제 #5
0
        internal RefreshToken CreateRefreshToken(AuthenticationGrantTypeRefreshToken authenticationGrantTypeRefreshToken, out string token)
        {
            RefreshToken = RefreshToken.Create(this, authenticationGrantTypeRefreshToken, out token);

            return(RefreshToken);
        }