Example: values retrieved from external services or calculated that need to be reused across subsequent Actions and are related to the current execution.
Use cache for data to be shared by Actions belonging to different executions.
Example: values retrieved from external services or calculated that need to be reused by Actions and are unrelated to the user or the specific current execution.
Ensure that Actions, which provide verification or trigger , cannot be bypassed unintentionally or maliciously.
Actions should never intentionally throw an error; if processes stop because of an error or condition, use the appropriate api method like api.access.deny().
Use event.request.hostname for the domain used in Authentication API calls; this could be the default Auth0 tenant domain or a custom domain.
Do not write secrets or sensitive code artifacts in plain text as part of your Actions code. Instead, use the Secrets Manager or leverage your own manager by integrating it within the Actions code.
Do not transmit unencrypted personally-identifiable information (PII) in plain sight, like in URLs or error messages.
Always use HTTPS URLs for redirects and API calls.
AllowList IP addresses when possible.
Watch for incoming data that can be tampered with (URL parameters, user agent, and so on).
The token returned by api.redirect.encodeToken is signed but not encrypted, so sensitive data or PII should not be included in the payload.
The Login Flow runs after a successful login, which includes:
SSO (no login form shown)
silent authentication (checking a session using prompt=none in the authorization URL)
refresh token exchange (no user interaction)
RO password grants (credentials gathered from an application and exchanged with the token endpoint)
Actions that redirect need to take the above cases into account and either deny access if interaction is required or intensionally allow bypassing, which puts the burden on the application requesting login.