public async Task <UserSpecificToken> GenerateAccessTokenAsync(User user) { await CheckAndDeleteOldTokens(); UserSpecificToken newToken = null; do { newToken = UserSpecificToken.Generate(UserSpecificTokenType.SocketToken, DateTime.Now.AddHours(12)); } while (await GetUserByAccessToken(newToken.Token) != null); user.Tokens.Add(newToken); await _context.SaveChangesAsync(); return(newToken); }
private async Task <UserSpecificToken> GenerateRefreshTokenAsync(User user) { if (user == null) { return(null); } // Generate token var expires = DateTime.Now.AddMinutes(Convert.ToDouble(_config.GetSection("Jwt")["RefreshExpireMinutes"])); var outputToken = UserSpecificToken.Generate(UserSpecificTokenType.RefreshToken, expires); // Save user.Tokens.Add(outputToken); await _context.SaveChangesAsync(); return(outputToken); }