Login Redirect
Syntax
{
"Key": "redirect:on:login",
"Value": {
"Type": "page_redirect|url_redirect|trigger_callback|default",
"PageSlug": "string",
"PageId": "numeric",
"Url": "string",
"Callback": "string"
}
}
The properties PageSlug, PageId, Url, and Callback are required depending on the selected Type. For instance, if page_redirect type is chosen, then the PageSlug or PageId property must also be provided.
Examples
The following policy redirects user to the /monday-agenda if current day is Monday.
{
"Param": {
"Key": "redirect:on:login",
"Value": {
"Type": "url_redirect",
"Url": "/monday-agenda"
},
"Condition": {
"Equals": {
"${DATETIME.D}": "Mon"
}
}
}
}
Definition
The login redirect behavior is expressed in the AAM access policy as the param redirect:on:login. The Value property contains attributes that define how to handle redirects.
The Type attribute defines what type of redirect to apply and can contain one of the following values:
page_redirectis the redirect to an existing page.url_redirectis the safe redirect to a URL.trigger_callbackinvokes a custom PHP function that handles redirects.defaultis the default WordPress behavior.
Depending on the Type additional information may be required to fine-tune the redirect as follows:
- If the redirect type is
page_redirect, you can provide either the page slug or page ID for the destination page. We recommend using page slugs to make policies more readable. - If the redirect type is
url_redirect, you should provide a valid URL. However, AAM uses WordPress core safe redirect for security and compliance reasons. You can learn more about this from What is a safe redirect in WordPress? blog. - If the redirect is a
trigger_callback, a valid PHP callback function is required. AAM does not validate if the provided function exists.
Here is another example where we redirect a user who has the “Subscriber” role to the /members/ page.
{
"Param": [
{
"Key": "redirect:on:login",
"Value": {
"Type": "url_redirect",
"Url": "https://demo.aamportal.com/members"
},
"Condition": {
"In": {
"subscriber": "(*array)${USER.roles}"
}
}
}
]
}