Last active
July 13, 2018 09:04
-
-
Save wellingtonjhn/d98ac8c74c016973891d76340b088d09 to your computer and use it in GitHub Desktop.
JwtService - Create Refresh Token
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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