Пример #1
0
        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);
        }
Пример #2
0
        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);
        }