public string IssueAuthToken(RefreshTokenPayload refreshToken)
        {
            ValidateToken(refreshToken);
            var user = _userService.Get(refreshToken.Subject);

            return(GenerateAuthToken(user));
        }
示例#2
0
        public async Task <RefreshTokenResult> GetTokenByRefresh(string refreshToken)
        {
            const string url     = "https://accounts.spotify.com/api/token";
            var          payload = new RefreshTokenPayload(refreshToken,
                                                           _configuration.ClientId, _configuration.ClientSecret);
            var response = await _httpClient.PostFormWithToken <RefreshTokenResult>(url, payload);

            return(response);
        }
        private string GenerateRefreshToken(string userId)
        {
            RefreshTokenPayload payload = new RefreshTokenPayload
            {
                Issuer   = _settings.Issuer,
                Subject  = userId,
                Audience = _settings.Audience,
                IssuedAt = DateTime.Now.Millisecond,
                Expires  = DateTime.Now.AddHours(_settings.RefreshTokenValidityHours).Millisecond,
            };

            return(GenerateToken(payload));
        }
示例#4
0
        public IActionResult RefreshToken(RefreshTokenPayload payload)
        {
            if (!_db.StudentExists(payload.IndexNumber))
            {
                return(Unauthorized("Invalid user or refresh token"));
            }

            var SecurityData = _db.GetStudentSecurityData(payload.IndexNumber);

            if (payload.RefreshToken != SecurityData.RefreshToken)
            {
                return(Unauthorized("Invalid user or refresh token"));
            }

            return(Ok(new
            {
                AccessToken = new JwtSecurityTokenHandler().WriteToken(_security.GenerateToken(
                                                                           payload.IndexNumber,
                                                                           SecurityData.Role
                                                                           ))
            }));
        }