{"id":263,"date":"2013-09-05T14:50:08","date_gmt":"2013-09-05T17:50:08","guid":{"rendered":"http:\/\/gianfratti.com\/?p=263"},"modified":"2017-04-06T17:54:06","modified_gmt":"2017-04-06T20:54:06","slug":"apresentar-janela-de-session-timeout-para-os-usuarios-usando-jquery","status":"publish","type":"post","link":"https:\/\/gianfratti.com\/index.php\/apresentar-janela-de-session-timeout-para-os-usuarios-usando-jquery\/","title":{"rendered":"Apresentar Janela de Session Timeout para os usu\u00e1rios usando Jquery"},"content":{"rendered":"<p style=\"text-align: justify;\">Muitas vezes quando o sistema fica por muito tempo sem atualizar ou solicitar uma p\u00e1gina a sess\u00e3o configurada no servidor pode expirar causando um erro ao usu\u00e1rio ou deslogando o usu\u00e1rio do sistema sem um aviso pr\u00e9vio.<\/p>\n<p style=\"text-align: justify;\">Usando o Timeout-dialog.js voc\u00ea poder\u00e1 emitir um alerta amig\u00e1vel ao usu\u00e1rio avisando que a sess\u00e3o vai terminar e ele precisa tomar uma decis\u00e3o.<\/p>\n<p>Exemplo da janela apresentada ao usu\u00e1rio.<br \/>\n<a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/09\/Timeout-Dialog.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-262\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/09\/Timeout-Dialog.jpg\" alt=\"Timeout-Dialog\" width=\"395\" height=\"204\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/09\/Timeout-Dialog.jpg 395w, https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/09\/Timeout-Dialog-300x154.jpg 300w\" sizes=\"auto, (max-width: 395px) 100vw, 395px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><!--more-->Como usar.<\/p>\n<p><strong>1\u00ba fa\u00e7a o download do\u00a0<strong><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/09\/timeout-dialog.js\">timeout-dialog<\/a><\/strong> e insira a referencia no seu projeto.<br \/>\n<\/strong><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;script type=&quot;text\/javascript&quot; src=&quot;\/Scripts\/timeout-dialog.js&quot;&gt;&lt;\/script&gt;\r\n<\/pre>\n<p><strong>2\u00ba Voc\u00ea pode simplesmente chamar a fun\u00e7\u00e3o:<\/strong><\/p>\n<p>$.timeoutDialog();<br \/>\nObs: chamando a fun\u00e7\u00e3o acima voc\u00ea estar\u00e1 exibindo o alerta com as configura\u00e7\u00f5es padr\u00f5es.<\/p>\n<p><strong>ou pode configurar os par\u00e2metros conforme a sua necessidade.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n$.timeoutDialog({\r\ntimeout: 900, \/*(valor sem segundos) 15 minutos emite mensagem ao usu\u00e1rio que a session vai expirar*\/\r\ncountdown: 60, \/*(valor em segundos) 60 segundos \u00e9 o tempo que a mensagem ficara aguardando a decis\u00e3o do usu\u00e1rio, caso contrario o mesmo ser\u00e1 deslogado*\/\r\ntitle: 'Sua sess\u00e3o est\u00e1 prestes a expirar!',\r\nmessage: 'Voc\u00ea ser\u00e1 desconectado em {0} segundos.',\r\nquestion: 'Voc\u00ea deseja ficar conectado?',\r\nkeep_alive_button_text: 'Sim, Mantenha-me conectado',\r\nsign_out_button_text: 'N\u00e3o, desejo sair',\r\nkeep_alive_url: '\/Site\/RenovarSession.ashx', \/*Pagina que renova a session*\/\r\nlogout_url: null,\r\nlogout_redirect_url: '\/Site\/Default.aspx', \/*Pagina que desloga o usu\u00e1rio*\/\r\nrestart_on_yes: true,\r\ndialog_width: 300\r\n});\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Segue abaixo listagem com todas as configura\u00e7\u00f5es dispon\u00edveis para parametriza\u00e7\u00e3o.<\/p>\n<h3>Options<\/h3>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Type<\/th>\n<th width=\"170\">Default<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>timeout<\/strong><\/td>\n<td>number<\/td>\n<td>1200<\/td>\n<td>The number of your session timeout (in seconds). The timeout value minus the countdown value determines how long until the dialog appears.<\/td>\n<\/tr>\n<tr>\n<td><strong>countdown<\/strong><\/td>\n<td>number<\/td>\n<td>60<\/td>\n<td>The countdown total value (in seconds).<\/td>\n<\/tr>\n<tr>\n<td><strong>title<\/strong><\/td>\n<td>string<\/td>\n<td>&#8216;Your session is about to expire!&#8217;<\/td>\n<td>The title message in the dialog box.<\/td>\n<\/tr>\n<tr>\n<td><strong>message<\/strong><\/td>\n<td>string<\/td>\n<td>&#8216;You will be logged out in {0} seconds.&#8217;<\/td>\n<td>The countdown message where <code>{0}<\/code> will be used to enter the countdown value.<\/td>\n<\/tr>\n<tr>\n<td><strong>question<\/strong><\/td>\n<td>string<\/td>\n<td>&#8216;Do you want to stay signed in?&#8217;<\/td>\n<td>The question message if they want to continue using the site or not.<\/td>\n<\/tr>\n<tr>\n<td><strong>keep_alive_button_text<\/strong><\/td>\n<td>string<\/td>\n<td>&#8216;Yes, Keep me signed in&#8217;<\/td>\n<td>The text of the YES button to keep the session alive.<\/td>\n<\/tr>\n<tr>\n<td><strong>sign_out_button_text<\/strong><\/td>\n<td>string<\/td>\n<td>&#8216;No, Sign me out&#8217;<\/td>\n<td>The text of the NO button to kill the session.<\/td>\n<\/tr>\n<tr>\n<td><strong>keep_alive_url<\/strong><\/td>\n<td>string<\/td>\n<td>\/keep-alive<\/td>\n<td>The url that will perform a GET request to keep the session alive. This GET expects a &#8216;OK&#8217; plain HTTP response.<\/td>\n<\/tr>\n<tr>\n<td><strong>logout_url<\/strong><\/td>\n<td>string<\/td>\n<td>null<\/td>\n<td>The url that will perform a POST request to kill the session. If no logout_url is defined it will just redirect to the url defined in logout_redirect_url.<\/td>\n<\/tr>\n<tr>\n<td><strong>logout_redirect_url<\/strong><\/td>\n<td>string<\/td>\n<td>\/<\/td>\n<td>The redirect url after the logout happens, usually back to the login url. It will also contain a <code>next<\/code> query param with the url that they were when timedout and a <code>timeout=t<\/code> query param indicating if it was from a timeout, this value will not be set if the user clicked the &#8216;No, Sign me out&#8217; button.<\/td>\n<\/tr>\n<tr>\n<td><strong>restart_on_yes<\/strong><\/td>\n<td>boolean<\/td>\n<td>true<\/td>\n<td>A boolean value that indicates if the countdown will restart when the user clicks the &#8216;keep session alive&#8217; button.<\/td>\n<\/tr>\n<tr>\n<td><strong>dialog_width<\/strong><\/td>\n<td>number<\/td>\n<td>350<\/td>\n<td>The width of the dialog box.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Fontes de referencia:<\/strong><br \/>\nVoc\u00ea pode visitar o reposit\u00f3rio do projeto em:<br \/>\n<a href=\"https:\/\/github.com\/rigoneri\/timeout-dialog.js?next=\/timeout-dialog.js\/\" target=\"_blank\">https:\/\/github.com\/rigoneri\/timeout-dialog.js?next=\/timeout-dialog.js\/<\/a><\/p>\n<p><strong>Outros sites com conte\u00fado que pode apoiar seu conhecimento.<\/strong><br \/>\n<a href=\"http:\/\/jquerybyexample.blogspot.com\/2012\/06\/show-session-timeout-alert-to-user.html\" target=\"_blank\">http:\/\/jquerybyexample.blogspot.com\/2012\/06\/show-session-timeout-alert-to-user.html<\/a><br \/>\n<a href=\"http:\/\/rigoneri.github.io\/timeout-dialog.js\/\" target=\"_blank\">http:\/\/rigoneri.github.io\/timeout-dialog.js\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muitas vezes quando o sistema fica por muito tempo sem atualizar ou solicitar uma p\u00e1gina a sess\u00e3o configurada no servidor pode expirar causando um erro ao usu\u00e1rio ou deslogando o usu\u00e1rio do sistema sem um aviso pr\u00e9vio. Usando o Timeout-dialog.js voc\u00ea poder\u00e1 emitir um alerta amig\u00e1vel ao usu\u00e1rio avisando que a sess\u00e3o vai terminar e <span class=\"ellipsis\">&hellip;<\/span> <span class=\"more-link-wrap\"><a href=\"https:\/\/gianfratti.com\/index.php\/apresentar-janela-de-session-timeout-para-os-usuarios-usando-jquery\/\" class=\"more-link\"><span>Read More &rarr;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[74,51,53,52,50],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-jquery","tag-jquery","tag-session","tag-session-timeout","tag-timeout","tag-timeout-dialog-js"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":18,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":452,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/263\/revisions\/452"}],"wp:attachment":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}