wordpress icon indicating copy to clipboard operation
wordpress copied to clipboard

Add setting for cookie name prefix to plugin settings

Open jaketfoster opened this issue 1 year ago • 2 comments

Checklist

  • [X] I have looked into the Readme and the documentation, and have not found a suitable solution or answer.
  • [X] I have searched the issues and have not found a suitable solution or answer.
  • [X] I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • [X] I agree to the terms within the Auth0 Code of Conduct.

Describe the problem you'd like to have solved

v5 appears to have removed the hooks mentioned in this issue. I am using pantheon, and need to prefix the cookie names with STYXKEY_ to avoid cookies being lost due to the CDN.

Describe the ideal solution

The ideal solution would be to add an optional field to the plugin's settings in the WordPress admin dashboard to set the SDK configuration object's storage IDs with the prefix. This would save custom work needing to be done to achieve this with the plugin.

Alternatives and current workarounds

I achieved a workaround by adding a plugins_loaded action in functions.php of my site as follows:

// change the auth0 cookie name to be prefixed with STYXKEY_ for Pantheon
function update_auth0_cookie_storage_id()
{
  $auth0SDK = wpAuth0()->getSdk();
  $auth0Config = $auth0SDK->configuration();
  $storageId = 'STYXKEY_' . $auth0Config->getSessionStorageId();
  $transientId = 'STYXKEY_' . $auth0Config->getTransientStorageId();
  $auth0Config->setSessionStorageId($storageId);
  $auth0Config->setTransientStorageId($transientId);
  $auth0Config->setSessionStorage(new CookieStore($auth0Config, $auth0Config->getSessionStorageId()));
  $auth0Config->setTransientStorage(new CookieStore($auth0Config, $auth0Config->getTransientStorageId()));
  $auth0SDK->setConfiguration($auth0Config);
}
add_action('plugins_loaded', update_auth0_cookie_storage_id());

I was able to update the configuration of the SDK by using this method. However, it took me a while of reading the source code of the plugin and SDK to find this solution, so I am proposing adding a setting in the Plugin settings on the WordPress admin dashboard.

Additional context

Pantheon Cache Docs for reference here.

jaketfoster avatar Apr 12 '24 19:04 jaketfoster

Hey @jaketfoster, thanks very much for the suggestion. My bandwidth is currently allocated to another project so I can't give a firm ETA, but we will get to this as soon as possible. In the meantime, your workaround solution looks excellent 👌

evansims avatar Apr 16 '24 21:04 evansims