Exemplo n.º 1
0
        public async Task <IActionResult> Login(UserForLoginDto userForLoginDto)
        {
            var user = await _UserManager.FindByNameAsync(userForLoginDto.UserName);

            if (user == null)
            {
                _logger.LogWarning($"{userForLoginDto.UserName} درخواست لاگین ناموفق داشته است");
                return(Unauthorized("کاربری با این یوزر و پس وجود ندارد"));
            }
            var result = await _signInManager.CheckPasswordSignInAsync(user, userForLoginDto.Password, false);

            if (result.Succeeded)
            {
                var appUser = _UserManager.Users.Include(p => p.Photos)
                              .FirstOrDefault(u => u.NormalizedUserName == userForLoginDto.UserName.ToUpper());

                var userForReturn = _mapper.Map <UserForDetailedDto>(appUser);

                _logger.LogInformation($"{userForLoginDto.UserName} لاگین کرده است");
                return(Ok(new
                {
                    token = _utilities.GenerateJwtToken(appUser, userForLoginDto.IsRemember),
                    user = userForReturn
                }));
            }
            else
            {
                _logger.LogWarning($"{userForLoginDto.UserName} درخواست لاگین ناموفق داشته است");
                return(Unauthorized("کاربری با این یوزر و پس وجود ندارد"));
            }
        }