示例#1
0
        public ActionResult UpdateProfile(UpdateStudentProfileDTO dto)
        {
            var username = User.FindFirst("UserName")?.Value;
            var account  = _accountsRepository.CheckLogin(username, dto.Password);

            if (account == null)
            {
                return(BadRequest());
            }

            account.Name = dto.Name;

            _accountsRepository.Update(account);

            _accountsRepository.SaveChanges();

            return(NoContent());
        }
        public IActionResult Login([FromBody] AccountDTO account)
        {
            if (account != null || account.Username != null || account.Password != null)
            {
                var acc = _accountsRepository.CheckLogin(account.Username, account.Password);

                if (acc != null)
                {
                    var claims = new[]
                    {
                        new Claim(JwtRegisteredClaimNames.Sub, _configuration["JWT:Subject"]),
                        new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                        new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()),
                        new Claim("UserName", acc.Username),
                        new Claim("Name", acc.Name),
                        new Claim("Password", acc.Password),
                        new Claim("role", acc.IsTeacher.ToString()),
                        new Claim("IsTeacher", acc.IsTeacher.ToString())
                    };

                    var key    = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));
                    var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                    var token  = new JwtSecurityToken(
                        _configuration["JWT:Issure"],
                        _configuration["JWT:Audience"],
                        claims,
                        expires: DateTime.UtcNow.AddHours(12),
                        signingCredentials: signIn
                        );

                    return(Ok(new JwtSecurityTokenHandler().WriteToken(token)));
                }
                else
                {
                    return(BadRequest("Invalid credentials"));
                }
            }
            else
            {
                return(BadRequest());
            }
        }