コード例 #1
0
        public async Task <string> GenerateRefreshToken(string sub)
        {
            //Save new refresh token in db
            var refreshKey = Guid.NewGuid().ToString();
            var expires    = Clock.InUtc()
                             .GetCurrentInstant()
                             .Plus(Duration.FromMinutes(_refreshTimeout));

            var refreshToken = await _refreshTokenRepository.CreateNewToken(refreshKey, sub, expires);

            //refresh claims
            var claims = new List <Claim>
            {
                new Claim("sub", refreshToken.Sub),
                new Claim("refresh_key", refreshKey)
            };

            //generate jwt
            return(CreateToken(claims, Clock.InUtc().GetCurrentInstant(), expires, _refreshSecret));
        }