Skip to content

Instantly share code, notes, and snippets.

@wellingtonjhn
Last active July 13, 2018 09:04
Show Gist options
  • Select an option

  • Save wellingtonjhn/d98ac8c74c016973891d76340b088d09 to your computer and use it in GitHub Desktop.

Select an option

Save wellingtonjhn/d98ac8c74c016973891d76340b088d09 to your computer and use it in GitHub Desktop.
JwtService - Create Refresh Token
public class JwtService : IJwtService
{
private readonly JwtSettings _settings;
public JwtService(JwtSettings settings)
{
_settings = settings;
}
public JsonWebToken CreateJsonWebToken(User user)
{
// ... código omitido
return new JsonWebToken
{
AccessToken = accessToken,
RefreshToken = CreateRefreshToken(user.Email),
ExpiresIn = (long)TimeSpan.FromMinutes(_settings.ValidForMinutes).TotalSeconds
};
}
private RefreshToken CreateRefreshToken(string username)
{
var refreshToken = new RefreshToken
{
Username = username,
ExpirationDate = _settings.RefreshTokenExpiration
};
string token;
var randomNumber = new byte[32];
using (var rng = RandomNumberGenerator.Create())
{
rng.GetBytes(randomNumber);
token = Convert.ToBase64String(randomNumber);
}
refreshToken.Token = token.Replace("+", string.Empty)
.Replace("=", string.Empty)
.Replace("/", string.Empty);
return refreshToken;
}
// ... código omitido
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment