public IHttpActionResult RenewToken() { try { IEnumerable <string> authHeaderValues; Request.Headers.TryGetValues("UserToken", out authHeaderValues); var userToken = authHeaderValues.ElementAt(0); TokenModelIn TokenModelIn = JjwtTokens.GetTokenModel(userToken, ApplicationJjwtContext.SecretKey, ApplicationJjwtContext.SessionMinutes); var secretKeyMessage = ApplicationJjwtContext.SecretKeyMessage; if (!string.IsNullOrEmpty(secretKeyMessage)) { return(BadRequestModelErrorOut(secretKeyMessage)); } var ret = JjwtTokens.CreateToken(ApplicationJjwtContext.SecretKey, TokenModelIn); return(Ok(new ApiMessageResponse <TokenModelOut>(ret))); } catch (Exception ex) { return(BadRequest(new ApiMessageResponse <TokenModelOut>(ex.GetFirstException().Message))); } }
public async Task <IHttpActionResult> Login(UserLoginModelIn modelIn) { try { if (modelIn.IsNull()) { return(BadRequest(new ApiMessageResponse <TokenModelOut>("Modelo Inválido"))); } if (!ModelState.IsValid) { return(BadRequest(new ApiMessageResponse <TokenModelOut>(ModelState.StringifyModelErrors()))); } UserService userService = new UserService(); UserLoginModelOut _user = await userService.GetUserAsync(modelIn); if (_user.IsNull()) { return(BadRequest(new ApiMessageResponse <TokenModelOut>("Usuario no válido"))); } var secretKey = ApplicationJjwtContext.SecretKey; var secretKeyMessage = ApplicationJjwtContext.SecretKeyMessage; var sessionMinutes = ApplicationJjwtContext.SessionMinutes; var TokenModelIn = new TokenModelIn() { UserId = _user.Id.ToString(), UserFullName = _user.Name, SessionMinutes = sessionMinutes }; if (!string.IsNullOrEmpty(secretKeyMessage)) { return(BadRequest(new ApiMessageResponse <TokenModelOut>("No autenticado"))); } var ret = JjwtTokens.CreateToken(secretKey, TokenModelIn); ret.UserId = _user.Id; ret.UserName = _user.Name; return(Ok(new ApiMessageResponse <TokenModelOut>(ret))); } catch (Exception ex) { return(BadRequest(new ApiMessageResponse <TokenModelOut>(ex.GetFirstException().Message))); } }