public async Task <IActionResult> Index(LoginRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View(ModelState));
            }

            var token = (ObjectResult)_authController.Authenticate(request).Result;

            ApiResult <string> result = (ApiResult <string>)token.Value;

            if (result.ResultObj is null)
            {
                ModelState.AddModelError(string.Empty, result.Message);

                request.ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

                return(View(request));
            }

            _httpContextAccessor.HttpContext.Session.SetString(SystemConstants.AppSettings.Token, result.ResultObj);

            var decodeToken = DecodeToken.Decode(_httpContextAccessor.HttpContext.Session.GetString("Token"));

            var userId = decodeToken.Claims.First(claim => claim.Type == ClaimTypes.NameIdentifier).Value;

            var user = _usersController.GetCurrentUser(int.Parse(userId)).Result;

            _httpContextAccessor.HttpContext.Session.SetComplexData("User", user);

            return(RedirectToAction("Index", "Listing"));
        }
Exemple #2
0
        public Session GetSession()
        {
            var     getToken = HttpContext.Session.GetString("Token");
            Session session  = new Session();

            session.token       = getToken;
            session.idUsuario   = DecodeToken.getId(getToken);
            session.eGestor     = DecodeToken.getEGestor(getToken);
            session.nomeUsuario = DecodeToken.getNome(getToken);

            return(session);
        }