{"componentChunkName":"component---src-templates-blog-post-js","path":"/es/blog/portals-custom-signin/","result":{"data":{"site":{"siteMetadata":{"title":"Victor Sanchez","author":"Victor Sanchez","siteUrl":"https://www.victorsolaya.com"}},"mdx":{"id":"931e81bb-0559-544b-8c4d-13a444814fef","excerpt":"He visto muchas veces algún requerimiento de personalizar la página de Log In en algunos portales de D365 y la mayoría de personas sugiere lo siguiente: Crea un…","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"path\": \"portals-custom-signin\",\n  \"date\": \"2021-01-15T14:00:00.000Z\",\n  \"title\": \"Custom Portals D365 Sign In\",\n  \"image\": \"/assets/customsignin/banner.png\",\n  \"tag\": \"Portals D365\",\n  \"minutes\": 4,\n  \"description\": \"Esta semana he tenido el requerimiento de inclur la lógica de Log In dentro de nuestra página raíz y que no había pensado sobre ello antes. Veremos como podemos hacerlo de la misma forma que lo hace Portals por defecto.\",\n  \"parenturl\": \"es/blog\",\n  \"lang\": \"es\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"He visto muchas veces alg\\xFAn requerimiento de personalizar la p\\xE1gina de Log In en algunos portales de D365 y la mayor\\xEDa de personas sugiere lo siguiente:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Crea un content snippet (Fragmento de contenido) llamado: Account/SignIn/PageCopy\"), mdx(\"ul\", {\n    parentName: \"blockquote\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"cite\", null, \"Todos los desarroladoers de Portals de D365\")))), mdx(\"p\", null, \"Bien, esto es algo que acabo de descubrir mientras estaba probando un poco por aqu\\xED y por all\\xE1.\"), mdx(\"p\", null, \"Probablemente ya lo sabr\\xE9is, pero creo que es bueno compartir esto porque yo no lo hab\\xEDa visto antes.\"), mdx(\"h2\", null, \"Problema\"), mdx(\"p\", null, \"El problema viene cuando el cliente dice, \\u201CNo quiero la p\\xE1gina de signin, necesito que el signin est\\xE9 en la p\\xE1gina ra\\xEDz\\u201D\"), mdx(\"p\", null, \"Bueno, mi cabeza empez\\xF3 a pensar diciendo que, claro, ese Account/SignIn/PageCopy no va a funcionar\\u2026\"), mdx(\"img\", {\n    width: \"350\",\n    src: \"/assets/gifs/ohno.gif\"\n  }), mdx(\"h2\", null, \"Primer pensamiento\"), mdx(\"p\", null, \"Mi primer pensamiento fue para incluir la p\\xE1gina de Sign In dentro de un iFrame. Esto podr\\xEDa resolver el problema, embebiendo esta misma p\\xE1gina dentro de la p\\xE1gina ra\\xEDz, por lo que problema resuelto.\\nSin embargo, no me gusta al 100% los iFrames, y podr\\xEDa ser un poco tedioso.\"), mdx(\"h2\", null, \"Segundo pensamiento\"), mdx(\"p\", null, \"Hey, finalmente en todas las p\\xE1ginas del mundo, cuando intentas crear un login, es un POST a alg\\xFAn lugar, por lo que veamos si es el mismo comportamiento en Portals y lo recreamos.\"), mdx(\"p\", null, \"Voil\\xE0!!\"), mdx(\"p\", null, \"I recreated with some ajax and some fields the same exact structure and I could login, and, as always, I am going to share that with you\\nHice lo mismo con ajax y algunos campos con la misma estructura y pude loguearme, y, como siempre, voy a compartirlo.\"), mdx(\"h2\", null, \"Vamos al c\\xF3digo\"), mdx(\"p\", null, \"Solo para prop\\xF3sitos de desarrollo y NO m\\xE9jores practicas, he a\\xF1adido todo el c\\xF3digo dentro de la Plantilla Web Home en mi p\\xE1gina ra\\xEDz para que se pueda seguir todo.\\nThe very first things we need are - at least - 2 fields and 1 button.\\nLas primeras cosas que necesitamos son - al menos - 2 campos y 1 bot\\xF3n.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Username - Nombre de usuario\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Password - Contrase\\xF1a\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Click button. - Bot\\xF3n para clickar.\")), mdx(\"pre\", {\n    \"className\": \"default-dark vscode-highlight\",\n    \"data-language\": \"html\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"vscode-highlight-code\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"{% if user %}\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"h1\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"Hey {{user.firstname}}, eres incre\\xEDble.\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"</\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"h1\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"{% else %}\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"h1\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"Custom Login\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"</\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"h1\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"div\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"class\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"form-group\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"input\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"type\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"text\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"class\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"form-control\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"id\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"usernameCustom\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"/>\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"input\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"type\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"password\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"class\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"form-control\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"id\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"passwordCustom\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"/>\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"<\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"button\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"type\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"button\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"class\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"btn btn-primary\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"onclick\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"=\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"LogInCustom\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"()\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    Log In\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"</\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"button\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \"</\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"div\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk17\"\n  }), \">\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"{% endif %}\")))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Nota que he usado Bootstrap CSS, incre\\xEDble eh? \\uD83E\\uDD23\")), mdx(\"p\", null, \"Voy a explicar el c\\xF3digo muy r\\xE1pido. Cada vez que nos logueamos vamos a ver algo como \\u201CHey Victor, eres incre\\xEDble\\u201D, si no estamos logueados, vamos a ver el HTML para ver las credenciales.\"), mdx(\"p\", null, \"La segunda cosa y la m\\xE1s importante es desarrollar la funcionalida del c\\xF3digo en Javascript.\"), mdx(\"pre\", {\n    \"className\": \"default-dark vscode-highlight\",\n    \"data-language\": \"js\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"vscode-highlight-code\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"function\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"LogInCustom\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"() {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"shell\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"getTokenDeferred\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"().\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"done\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"function\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"token\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \") {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"var\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"params\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" = {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"__RequestVerificationToken:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"token\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \",\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"Username:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"$\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"#usernameCustom\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \").\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"val\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(),\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"Password:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"$\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"#passwordCustom\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \").\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"val\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(),\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"RememberMe:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"false\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    };\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"SafeAjaxToSignin\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"params\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \");\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  });\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"}\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }))), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"function\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"SafeAjaxToSignin\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"params\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \") {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk3\"\n  }), \"// Llamanda a shell.ajaxsafepost para pasar los par\\xE1metros.\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"  \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"shell\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    .\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"ajaxSafePost\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"({\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"type:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"POST\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \",\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"url:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk8\"\n  }), \"\\\"/signin\\\"\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \",\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"data:\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \" \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"params\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    })\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    .\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"then\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"function\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"done\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \") {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"        \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"window\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"location\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"reload\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"();\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      },\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk4\"\n  }), \"function\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"error\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \") {\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"        \"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"alert\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"error\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \");\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"      }\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"    );\")), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"}\")))), mdx(\"p\", null, \"Como puedes ver, estoy usando el objeto \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"shell\"), \" que Portals nos da y que contiene estas dos funciones:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"getTokenDeferred\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"ajaxSafePost\")), mdx(\"p\", null, \"La primera es para obtener el token que se necesita para enviar la llamada.\\nLa segunda es la llamada a la p\\xE1gina de signin que es la que contiene la API.\"), mdx(\"p\", null, \"Vamos a recrear la misma funcionalidad que lo que Portals est\\xE1 haciendo excepto a\\xF1adir la checkbox de Recu\\xE9rdame.\", \"_\"), mdx(\"p\", null, \"Una vez que nos logueemos, se recargar\\xE1 la p\\xE1gina con\"), mdx(\"pre\", {\n    \"className\": \"default-dark vscode-highlight\",\n    \"data-language\": \"js\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"vscode-highlight-code\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"vscode-highlight-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"window\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk12\"\n  }), \"location\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk11\"\n  }), \"reload\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"mtk1\"\n  }), \"();\")))), mdx(\"p\", null, \"y vamos a ver nuestro Hey Victor, eres incre\\xEDble.\"), mdx(\"p\", null, \"Veamos como funciona desde una manera muy simple:\"), mdx(\"img\", {\n    src: \"/assets/customsignin/portals-custom-signin.gif\"\n  }), mdx(\"h2\", null, \"Conclusi\\xF3n\"), mdx(\"p\", null, \"Eso es todo lo que quer\\xEDa compartir. Sin embargo, ten cuidado porque no vas a ver los mismos errores una vez que falle, as\\xED que tienes que controlarlos por t\\xED mismo.\\nTambi\\xE9n, todos los estilos dependen de ti, sin embargo, esto tambi\\xE9n est\\xE1 bien para incluir todas las cosas que necesitas en otra p\\xE1gina si no te gusta lo que aparece en el signin.\\nIncluso, si no quieres que esa p\\xE1gina se muestre nunca, simplemente crea una redirecci\\xF3n desde la p\\xE1gina del Portal de Sign In a la que necesites de tu sistema.\"), mdx(\"p\", null, \"Y ya sabes, cualquier sugerencia o pregunta, m\\xE1ndame tu pregunta al email: \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"mailto:me@victorsolaya.com\"\n  }), \"me@victorsolaya.com\")), mdx(\"style\", {\n    \"className\": \"vscode-highlight-styles\"\n  }, \"\\n  :root {\\n  --vscode-highlight-padding-v: 1rem;\\n  --vscode-highlight-padding-h: 1.5rem;\\n  --vscode-highlight-padding-top: var(--vscode-highlight-padding-v);\\n  --vscode-highlight-padding-right: var(--vscode-highlight-padding-h);\\n  --vscode-highlight-padding-bottom: var(--vscode-highlight-padding-v);\\n  --vscode-highlight-padding-left: var(--vscode-highlight-padding-h);\\n  --vscode-highlight-border-radius: 8px;\\n\\n  --vscode-highlight-line-highlighted-background-color: transparent;\\n  --vscode-highlight-line-highlighted-border-width: 4px;\\n  --vscode-highlight-line-highlighted-border-color: transparent;\\n}\\n\\n.vscode-highlight {\\n  overflow: auto;\\n  -webkit-overflow-scrolling: touch;\\n  padding-top: 1rem;\\n  padding-top: var(--vscode-highlight-padding-top);\\n  padding-bottom: 1rem;\\n  padding-bottom: var(--vscode-highlight-padding-bottom);\\n  border-radius: 8px;\\n  border-radius: var(--vscode-highlight-border-radius);\\n  font-feature-settings: normal;\\n}\\n\\n.vscode-highlight-code {\\n  display: inline-block;\\n  min-width: 100%;\\n}\\n\\n.vscode-highlight-line {\\n  display: inline-block;\\n  box-sizing: border-box;\\n  width: 100%;\\n  padding-left: 1.5rem;\\n  padding-left: var(--vscode-highlight-padding-left);\\n  padding-right: 1.5rem;\\n  padding-right: var(--vscode-highlight-padding-right);\\n}\\n\\n.vscode-highlight-line-highlighted {\\n  background-color: var(--vscode-highlight-line-highlighted-background-color);\\n  box-shadow: inset var(--vscode-highlight-line-highlighted-border-width) 0 0 0 var(--vscode-highlight-line-highlighted-border-color);\\n}\\n\\n  .default-dark {\\nbackground-color: #1E1E1E;\\ncolor: #D4D4D4;\\n}\\n\\n.default-dark .mtk1 { color: #D4D4D4; }\\n.default-dark .mtk2 { color: #1E1E1E; }\\n.default-dark .mtk3 { color: #6A9955; }\\n.default-dark .mtk4 { color: #569CD6; }\\n.default-dark .mtk5 { color: #D16969; }\\n.default-dark .mtk6 { color: #D7BA7D; }\\n.default-dark .mtk7 { color: #B5CEA8; }\\n.default-dark .mtk8 { color: #CE9178; }\\n.default-dark .mtk9 { color: #646695; }\\n.default-dark .mtk10 { color: #4EC9B0; }\\n.default-dark .mtk11 { color: #DCDCAA; }\\n.default-dark .mtk12 { color: #9CDCFE; }\\n.default-dark .mtk13 { color: #000080; }\\n.default-dark .mtk14 { color: #F44747; }\\n.default-dark .mtk15 { color: #C586C0; }\\n.default-dark .mtk16 { color: #6796E6; }\\n.default-dark .mtk17 { color: #808080; }\\n.default-dark .mtki { font-style: italic; }\\n.default-dark .mtkb { font-weight: bold; }\\n.default-dark .mtku { text-decoration: underline; text-underline-position: under; }\\n\"));\n}\n;\nMDXContent.isMDXComponent = true;","slug":"portals-custom-signin","frontmatter":{"title":"Custom Portals D365 Sign In","date":"January 15, 2021","description":"Esta semana he tenido el requerimiento de inclur la lógica de Log In dentro de nuestra página raíz y que no había pensado sobre ello antes. Veremos como podemos hacerlo de la misma forma que lo hace Portals por defecto.","image":"/assets/customsignin/banner.png","parenturl":"es/blog","lang":"es"}}},"pageContext":{"slug":"/portals-custom-signin/","lang":"es"}},"staticQueryHashes":["764694655"]}