public async Task <IActionResult> SignIn(string username, string password) { if (String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password)) { return(BadRequest()); } CustomLoginModel user = await _context.Users.FirstOrDefaultAsync(x => x.username == username && x.password == password); if (user != null) { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_configuration.GetConnectionString("GoogleClientSecret")); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.username), new Claim(ClaimTypes.Email, user.email), new Claim(ClaimTypes.NameIdentifier, user.id.ToString()), }), Expires = DateTime.UtcNow.AddDays(30), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.jwtToken = tokenHandler.WriteToken(token); return(Ok(user)); } else { return(BadRequest("Invalid Username or password")); } }
public async Task <IResultModel> Custom(CustomLoginModel model) { model.IP = _ipHelper.IP; model.UserAgent = _ipHelper.UserAgent; var result = await _service.Login(model); return(LoginHandle(result)); }
public async Task <IActionResult> Register([Bind("username, password, email")] CustomLoginModel user) { if (ModelState.IsValid) { bool exists = await _context.Users.AnyAsync(x => x.username == user.username || x.email == user.email); if (exists) { return(BadRequest("duplicate username or email")); } _context.Add(user); await _context.SaveChangesAsync(); return(Ok(user.id)); } else { return(BadRequest()); } }
public Task <ResultModel <LoginResultModel> > Handle(CustomLoginModel model) { throw new NotImplementedException(); }
public Task <ResultModel <LoginResultModel> > Login(CustomLoginModel model) { return(_customLoginHandler.Handle(model)); }