diff --git a/Manager.Interfaces/DTO/TokenDTO.cs b/Manager.Interfaces/DTO/TokenDTO.cs index 6a0b277..63bbe2f 100644 --- a/Manager.Interfaces/DTO/TokenDTO.cs +++ b/Manager.Interfaces/DTO/TokenDTO.cs @@ -11,5 +11,6 @@ namespace Manager.Interfaces.DTO public int expires_in { get; set; } public DateTimeOffset expiration { get; set; } public string instanceId { get; set; } + public int? pinCode { get; set; } } } diff --git a/ManagerService/Services/TokensService.cs b/ManagerService/Services/TokensService.cs index 3b37266..1de9aca 100644 --- a/ManagerService/Services/TokensService.cs +++ b/ManagerService/Services/TokensService.cs @@ -13,6 +13,7 @@ using Microsoft.IdentityModel.Tokens; using Manager.Framework.Business; using Manager.Interfaces.DTO; using System.IdentityModel.Tokens.Jwt; +using Manager.Services; namespace ManagerService.Service.Services { @@ -24,6 +25,7 @@ namespace ManagerService.Service.Services private readonly ILogger _logger; private readonly TokensSettings _tokenSettings; private readonly ProfileLogic _profileLogic; + private InstanceDatabaseService _instanceService; private readonly SigningCredentials _signingCredentials; @@ -35,11 +37,12 @@ namespace ManagerService.Service.Services /// Database context /// Profile logic /// Email client - public TokensService(ILogger logger, IOptions tokenSettings, ProfileLogic profileLogic) + public TokensService(ILogger logger, IOptions tokenSettings, ProfileLogic profileLogic, InstanceDatabaseService instanceService) { _logger = logger; _tokenSettings = tokenSettings.Value; _profileLogic = profileLogic; + _instanceService = instanceService; var key = Encoding.UTF8.GetBytes(_tokenSettings.Secret); _signingCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature); @@ -73,6 +76,8 @@ namespace ManagerService.Service.Services }; var token = tokenHandler.CreateToken(tokenDescriptor); + var instance = _instanceService.GetById(user.InstanceId); + return new TokenDTO() { access_token = tokenHandler.WriteToken(token), @@ -80,7 +85,8 @@ namespace ManagerService.Service.Services expiration = new DateTimeOffset(token.ValidTo), token_type = "Bearer", scope = Security.Scope, - instanceId = user.InstanceId + instanceId = user.InstanceId, + pinCode = instance.PinCode }; } catch (UnauthorizedAccessException ex)