示例#1
0
        public IActionResult Loginuser([FromBody] UnilagMedLogin model)
        {
            EntityConnection connection = new EntityConnection("tbl_medicalstaff");
            string           email      = model.email;
            string           pass       = model.password;
            DateTime         logindate  = DateTime.Now;



            if (connection.CheckUser(email, pass) == true && model != null)
            {
                var claim = new[]
                {
                    new Claim(ClaimTypes.NameIdentifier, model.roleId.ToString()),
                    new Claim(JwtRegisteredClaimNames.Sub, model.email),    //gotta add role as a sub for claim
                };
                var signingkey = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(_configuration["Jwt:SigningKey"]));

                int Expireminutes = Convert.ToInt32(_configuration["Jwt:ExpiryInMinutes"]);

                var token = new JwtSecurityToken(
                    issuer: _configuration["Jwt:Site"],
                    audience: _configuration["Jwt:Site"],
                    expires: DateTime.Today.AddDays(2),
                    signingCredentials: new SigningCredentials(signingkey, SecurityAlgorithms.HmacSha256));

                var tokenval = new JwtSecurityTokenHandler().WriteToken(token);

                //var output = JsonConvert.SerializeObject(res);
                //var result = JsonConvert.SerializeObject(tokenval);


                var role       = connection.DisplayRoles(email);
                var tempresult = new { logindate, tokenval };

                return(Ok(new { data = role, tempresult }));
            }

            obj = new { message = "Please check login details and try again!" };
            return(Unauthorized(obj));
        }