public QueryResult <UserLoginModel> Execute(RefreshLoginParameter parameters) { try { var result = _dataContext.User.Where(n => n.Id == parameters.UserId) .Select(n => new UserLoginModel { IsAuthenticated = true, Name = n.FirstName + " " + n.LastName, RoleId = n.RoleId, UserId = n.Id }).FirstOrDefault(); return(new QueryResult <UserLoginModel> { Data = result != null ? result : new UserLoginModel(), Message = result != null ? "Query Executed Successfully" : "No Data Present", IsExecuted = true, Status = CommandQueryStatus.Executed }); } catch (Exception ex) { return(new QueryResult <UserLoginModel> { Data = null, Message = "Error While Executing Query", IsExecuted = false, Status = CommandQueryStatus.Failed, ErrorMessage = ex.ToString() }); } }
public IActionResult Login([FromBody] RefreshLoginParameter refreshLoginParams) { var result = _query.Execute <QueryResult <UserLoginModel>, RefreshLoginParameter>(refreshLoginParams).Data; if (result != null && result.IsAuthenticated) { var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("KeyForSignInSecret@1234")); var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256); var tokeOptions = new JwtSecurityToken( issuer: "https://localhost:44386/", audience: "https://localhost:44343/", claims: new List <Claim> { new Claim(ClaimTypes.Name, result.Name), new Claim("UserInfo", result.UserId.ToString() + '|' + result.Name + '|' + result.RoleId.ToString()) }, expires: DateTime.Now.AddMinutes(30), signingCredentials: signinCredentials ); var tokenString = new JwtSecurityTokenHandler().WriteToken(tokeOptions); return(Ok(new TokenDetails { Token = tokenString, RoleId = result.RoleId.GetValueOrDefault(), User = result.Name, UserId = result.UserId, IsAuthenticated = true })); } else { return(Unauthorized()); } }