示例#1
0
        /// <summary>
        /// Recuperar la información de usuario del token
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>

        public UsuarioInfo DecodeJwtToken(string token)
        {
            // EXTRAE LA INFORMACIÓN DEL TOKEN JWT.
            var handler = new JwtSecurityTokenHandler();
            var _token  = handler?.ReadJwtToken(token);

            // CREA EL PERFIL DE INFORMACIÓN DEL USUARIO
            // A PARTIR DE LOS CLAIMS DEL TOKEN JWT
            var _usuarioInfo = new UsuarioInfo()
            {
                Id = new Guid(_token?.Claims?.
                              SingleOrDefault(x => x.Type == "nameid")?.Value
                              ?? _token.Id),

                Email = _token?.Claims?.
                        SingleOrDefault(x => x.Type == "email")?.Value,

                Rol = _token?.Claims?.
                      SingleOrDefault(x => x.Type.Contains("role"))?.Value,

                ValidoDesde = _token.ValidFrom,

                ValidoHasta = _token.ValidTo
            };

            return(_usuarioInfo);
        }
示例#2
0
        protected bool loadHandlerEmail(HttpRequest request)
        {
            string authorization = request.Headers["Authorization"];
            string token         = authorization.Substring("Bearer ".Length);

            _usuarioInfo = _jwtTokenService.DecodeJwtToken(token);

            Usuari usuari = _context.Usuaris.FirstOrDefault(x => x.Email == _usuarioInfo.Email);

            if (usuari == null)
            {
                return(false);
            }

            usuari.Pass = _encrypt.Desencriptar(usuari.Pass, _usuarioInfo.Id.ToString());

            _handler.connectar(usuari.Email, usuari.Pass, usuari.Email);
            return(_handler.conectado());
        }