diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-24 13:38:47 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-24 13:38:47 +0200 |
| commit | 64b768178dc9e64293a52c1b6d2631709af9502a (patch) | |
| tree | 6b7782fdbbbab4f734a1cb499cca03728c4f8f69 /Software/Visual_Studio/Tango.Web/Security/WebToken.cs | |
| parent | 028ab0e5cc2699ceec3e04b1eeab5f56b9b38083 (diff) | |
| download | Tango-64b768178dc9e64293a52c1b6d2631709af9502a.tar.gz Tango-64b768178dc9e64293a52c1b6d2631709af9502a.zip | |
Removed all refresh tokens use :/
Diffstat (limited to 'Software/Visual_Studio/Tango.Web/Security/WebToken.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Web/Security/WebToken.cs | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/Software/Visual_Studio/Tango.Web/Security/WebToken.cs b/Software/Visual_Studio/Tango.Web/Security/WebToken.cs index 006ed9de7..7aa4860ab 100644 --- a/Software/Visual_Studio/Tango.Web/Security/WebToken.cs +++ b/Software/Visual_Studio/Tango.Web/Security/WebToken.cs @@ -38,12 +38,15 @@ namespace Tango.Web.Security builder = builder.ExpirationTime(expiration.Value); } + String refreshToken = Guid.NewGuid().ToString(); + builder = builder.AddClaim("object", null); + builder = builder.AddClaim("refresh-token", refreshToken); return new WebToken() { AccessToken = builder.Build(), - RefreshToken = Guid.NewGuid().ToString(), + RefreshToken = refreshToken, Expiration = expiration, Issued = issued, }; @@ -65,11 +68,10 @@ namespace Tango.Web.Security .Decode(AccessToken); } - public WebToken Renew(String secret, String token) + public WebToken Renew(String secret) { - WebToken webToken = WebToken.FromToken(token); - var newToken = CreateNew(secret, DateTime.UtcNow.Add(webToken.Expiration.Value - webToken.Issued)); - newToken.RefreshToken = webToken.RefreshToken; + var newToken = CreateNew(secret, DateTime.UtcNow.Add(Expiration.Value - Issued)); + newToken.RefreshToken = RefreshToken; return newToken; } @@ -95,6 +97,11 @@ namespace Tango.Web.Security webToken.Issued = ConvertEpochToDateTime(iat); } + if (payload.ContainsKey("refresh-token")) + { + webToken.RefreshToken = payload["refresh-token"].ToString(); + } + return webToken; } @@ -128,12 +135,15 @@ namespace Tango.Web.Security builder = builder.ExpirationTime(expiration.Value); } + String refreshToken = Guid.NewGuid().ToString(); + builder = builder.AddClaim("object", obj); + builder = builder.AddClaim("refresh-token", refreshToken); return new WebToken<T>() { AccessToken = builder.Build(), - RefreshToken = Guid.NewGuid().ToString(), + RefreshToken = refreshToken, Expiration = expiration, Issued = issued, Object = obj, @@ -162,16 +172,20 @@ namespace Tango.Web.Security webToken.Issued = ConvertEpochToDateTime(iat); } + if (payload.ContainsKey("refresh-token")) + { + webToken.RefreshToken = payload["refresh-token"].ToString(); + } + webToken.Object = JsonConvert.DeserializeObject<T>(payload["object"].ToString()); return webToken; } - public new WebToken<T> Renew(String secret, String token) + public new WebToken<T> Renew(String secret) { - WebToken<T> webToken = WebToken<T>.FromToken(token); - var newToken = WebToken<T>.CreateNew(secret, webToken.Object, DateTime.UtcNow.Add(webToken.Expiration.Value - webToken.Issued)); - newToken.RefreshToken = webToken.RefreshToken; + var newToken = WebToken<T>.CreateNew(secret, Object, DateTime.UtcNow.Add(Expiration.Value - Issued)); + newToken.RefreshToken = RefreshToken; return newToken; } } |
