The following snippet lets you redirect users back to a protected content page they were attempting to access after login. It will override the value in Auth > Sign up and Login >Sign up settings > Post Signup URL.
Depending on your need, you might be looking for:
👉 Redirect to a plan-specific page post login, aka when a user logs in
👉 Redirect to a plan-specific page post signup, ie. before they create a password
👉 Redirect to a plan-specific page post first-time login, aka onboarding
The snippet
Add the provided custom code snippet (found between <!-- ✨ Custom Code Snippet Start -->
and <!-- ✨ Custom Code Snippet End ✨ -->
) to the head of your site below the Outseta script, which should already be in your site's head tag.
Remove all console.log
lines after verifying that the code works.
<!-- Outseta Script Options --> <script> var o_options = { domain: '[your-domain].outseta.com', }; </script> <!-- Outseta Script (doing all the magic) --> <script src="https://cdn.outseta.com/outseta.min.js" data-options="o_options"></script> <!-- ✨ Custom Code Snippet Start --> <script> // 1. Store the URL of the page the user attempted to access Outseta.on('nocode.accessDenied', () => { console.log('✨ nocode.accessDenied'); if (!Outseta.getAccessToken()) { console.log( '✨ |- user is unauthenticated, store url', window.location.href ); // This is an unauthenticated user (not a denied access user), // so store the current url. sessionStorage.setItem('postLoginUrl', window.location.href); } else { console.log('|- user is authenticated, but does not have access'); } }); // 2. Redirect the user to the stored URL after they log in Outseta.on('redirect', (redirectUrl) => { console.log('✨ redirect', redirectUrl); const redirectURL = new URL(redirectUrl); const accessToken = redirectURL.searchParams.get('access_token'); if (accessToken) { console.log('✨ |- is post login redirect'); // This is a login redirect, so let's // see if we have a stored postLoginUrl URL const postLoginUrl = sessionStorage.getItem('postLoginUrl'); if (postLoginUrl) { console.log('✨ |- set access token'); Outseta.setAccessToken(accessToken); console.log('✨ |- redirect to postLoginUrl', postLoginUrl); // Remove the stored postLoginUrl URL sessionStorage.removeItem('postLoginUrl'); // Redirect to the stored URL, window.location.href = postLoginUrl; // Disable redirect to original redirectUrl return false; } } }); </script> <!-- Custom Code Snippet End ✨ -->
This script:
- Listens for the
nocode.accessDenied
event and stores the current URL in session storage - Intercepts the redirect after login and checks for a stored URL to redirect to
- Cleans up the stored URL after use