From dfc8721ac41a524e56c7ae261619c6b3783704ba Mon Sep 17 00:00:00 2001 From: Travis 'Nep' Smith Date: Mon, 30 Jun 2025 20:06:00 -0500 Subject: [PATCH] Update logout.md Added more details and examples, removed some confusing references to login. --- docs/member/logout.md | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/docs/member/logout.md b/docs/member/logout.md index af8ce4dea..e02d86304 100644 --- a/docs/member/logout.md +++ b/docs/member/logout.md @@ -11,26 +11,39 @@ [TOC] +STYLE NOTE: Someone "logs out" (verb, two words) using a "logout link" or "logout form" (adjective, one word). + ## Logout Link -This link allows users to log-out of the system. To create the link, use this variable: +The logout link allows logged-in users to log out of ExpressionEngine. It will return the newly logged out visitor to the site's home page. Be aware that "logout" is a reserved word for path, and it does not create a link to `/logout`; it creates an ACT URL that includes a CSRF token. So, {path='logout'} -Place the variable inside of a link tag: +resolves to something like + + https://example.com/?ACT=10&csrf_token=3f9045ab558a35b7caf6a8130439758d02b343df + +Usually, you place the path variable inside of a link tag. Log Out +NOTE: The logout path link will generate with a fresh CSRF token every time it is called, even for visitors who are currently logged out. For maximum site efficiency, you should avoid creating logout links for visitors who are not logged in. + + {if logged_in}Log Out{/if} + +NOTE: Logging out of the front end of the site deletes the session cookie, so it will also potentially log someone out of the admin panel if your site uses cookies to be logged in to the control panel. ## Logout Form Overview -Output a log out form. +Output a logout form. - {exp:member:logout_form return="mymb/login"} + {exp:member:logout_form return="mymb/goodbye"} {/exp:member:logout_form} +No form fields are needed other than the submit button, and even that could be handled via `form.submit()`. A logout link is almost always sufficient unless you want to specify a specific return URL. + ## Parameters {{embed:_tips/form-attributes.md}} @@ -39,23 +52,23 @@ Output a log out form. action="https://example.com/" -Allows you to specify the action attribute of the <form> tag. Handy if you need to ensure that authentication points to SSL portions of your site from non-SSL portions. Often used in conjunction with the return= parameter and the [{current_url} global variable](templates/globals/single-variables.md#current_url) so your visitors will go back to the page and domain they logged in from. +Allows you to specify the action attribute of the <form> tag. Handy if you need to ensure that authentication points to SSL portions of your site from non-SSL portions. Often used in conjunction with the return= parameter and the [{current_url} global variable](templates/globals/single-variables.md#current_url) so your visitors will go back to the page and domain they logged out from. ### `form_class=` - form_class="login" + form_class="logout" This parameter allows you to specify the class attribute for the <form> tag. ### `form_id=` - form_id="login" + form_id="logout" This parameter allows you to specify the id attribute for the <form> tag. ### `form_name=` - form_name="login" + form_name="logout" This parameter allows you to specify a name attribute for the <form> tag. @@ -63,7 +76,7 @@ This parameter allows you to specify a name attribute for the <form> tag. return="site/index" -This parameter allows you to define where the user will be returned after successfully logging in. The parameter can be defined in two ways: +This parameter allows you to define where the user will be returned after successfully logging out. The parameter can be defined in two ways: 1. Use the standard Template_Group/Template syntax to specify where to return the user. For instance, if you want the user to be returned to the "local" Template in the "news" Template Group, you would use: return="news/local" 2. Use a full URL. For example: return=""