public async Task <ActionResult <LoginResponse> > Login([FromBody] Loginrequest input) { var token = await _UserLogic.CreateTokenAsync(input.UserNameOrEmail, input.Password).ConfigureAwait(false); return(Ok(new LoginResponse { Token = new JwtSecurityTokenHandler().WriteToken(token) })); }
public async Task <ActionResult <Baserepone> > Login(Loginrequest request) { if (!String.IsNullOrEmpty(request.username) && !String.IsNullOrEmpty(request.password)) { var user = await _context.Users.Where(x => x.username == request.username && x.password == Utils.Helepr.GenHash(request.password)).AsNoTracking().SingleOrDefaultAsync(); if (user != null) { //generate token (key) var claimData = new[] { new Claim(ClaimTypes.Name, request.username) }; // mã hóa và đầu vào là dạng một mảng byte var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("1234567890asdfghjkl")); // mã hóa bằng thuật toán hmacSha256 var singingCredential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: "http://localhost:2348", audience: "http://localhost:2348", expires: DateTime.Now.AddMinutes(30), signingCredentials: singingCredential ); var tokenString = new JwtSecurityTokenHandler().WriteToken(token); return(new Baserepone(new Loginrepone { id = user.userId, username = user.username, name = user.name, token = "Bearer " + tokenString })); } else { return(new Baserepone { errorcode = 1, errormessage = "Wrong username or password" }); } } return(new Baserepone { errorcode = 1, errormessage = "Wrong username or empty" }); }