diff --git a/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs b/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs index 5e56b431a..60543cb71 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs @@ -18,6 +18,7 @@ public interface IUserService Task GetAdminToken(string authorization); Task GetToken(string authorization); Task CreateTokenByUser(User user); + Task RenewToken(); Task GetMyProfile(); Task VerifyUserNameExisting(string userName); Task VerifyEmailExisting(string email); diff --git a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs index ea1a03384..fc2ad8fa1 100644 --- a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs +++ b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs @@ -520,6 +520,16 @@ public async Task CreateTokenByUser(User user) return token; } + public async Task RenewToken() + { + var newToken = GenerateJwtToken(await GetMyProfile()); + var newJwt = new JwtSecurityTokenHandler().ReadJwtToken(newToken); + Token token = new Token(); + token.AccessToken = newToken; + token.ExpireTime = newJwt.Payload.Exp.Value; + return token; + } + public async Task VerifyUserNameExisting(string userName) { if (string.IsNullOrEmpty(userName))