Пример #1
0
        public void AddRefreshToken(RefreshTokenSM refreshToken)
        {
            var tokenCollectionIndexBuilder = Builders <RefreshTokenDM> .IndexKeys;
            var indexModel = new CreateIndexModel <RefreshTokenDM>(tokenCollectionIndexBuilder.Text(x => x.UserId), new CreateIndexOptions {
                Unique = true
            });

            _refreshTokenCollection.Indexes.CreateOne(indexModel); //.ConfigureAwait(false);

            var refreshTokenDm = Mapper.Map <RefreshTokenDM>(refreshToken);

            _refreshTokenCollection.InsertOne(refreshTokenDm);
        }
Пример #2
0
        public Tuple <string, string> GenerateAndRegisterAccessAndRefreshTokens(UserSM user, string securityKey, int expiryHours, string issuer, int refreshTokenHours)
        {
            var authToken = GenerateAccessToken(user, securityKey, expiryHours, issuer);

            _authTokenCache.AddAuthToken(authToken);
            _authTokensData.AddAuthToken(authToken);


            _authTokensData.DeleteRefreshTokenForUser(user.Id);

            var refreshToken = new RefreshTokenSM
            {
                Expiry       = DateTime.Now.AddHours(refreshTokenHours),
                RefreshToken = GenerateRefreshToken(),
                UserId       = user.Id
            };

            _authTokensData.AddRefreshToken(refreshToken);

            return(new Tuple <string, string>(authToken.Token, refreshToken.RefreshToken));
        }