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); }
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)); }