Vetro
12/25/2021, 2:44 PMcookie-universal-nuxt
to simplify reading the cookies at ssr
2. Create the supertokens server plugin
`plugins/supertokens.server.js`:
export default async function ({ $cookies, error, route }) {
let cookies = $cookies.getAll();
if (
!cookies.sAccessToken &&
cookies.sIRTFrontend &&
cookies.sIRTFrontend !== 'remove'
) {
error({
statusCode: 401,
auth: 'refresh-session',
refreshPath: route.fullPath,
});
}
}
3. Add the plugin to nuxt.config.js
export default {
{...}
plugins: ['~/plugins/supertokens.server'],
{...}
}
4. add error handling at default error page at created
hook
`layouts/error.vue`:
{... template}
<script lang="ts">
import SuperTokens from 'supertokens-website';
{...}
reload() {
window.location.reload();
}
async created() {
if (
process.client &&
this.error.statusCode === 401 &&
this.error.auth === 'refresh-session'
) {
await SuperTokens.attemptRefreshingSession();
this.reload();
}
}
{...}
</script>
Done.
PS. Can you please check if my logic when to refresh (at 2.) is correct?
Thank you