oidc-client-ts
oidc-client-ts copied to clipboard
One class to let `oidc-client-ts` support SSR.
Add the following class:
import Cookies from "universal-cookie";
export class CookieStorage {
constructor(cookieHeader) {
this._cookies = new Cookies(cookieHeader);
}
getItem(key) {
return this._cookies.get(encodeURIComponent(key), { doNotParse: true });
}
setItem(key, value) {
return this._cookies.set(encodeURIComponent(key), value, { maxAge: 1000 });
}
removeItem(key) {
return this._cookies.remove(encodeURIComponent(key));
}
}
And config it:
export function config(cookieHeaders)
{
const cookieStorage = new CookieStorage(cookieHeaders);
return {
userStore: new WebStorageStateStore({ store: cookieStorage }),
stateStore: new WebStorageStateStore({ store: cookieStorage }),
};
}
Then, oidc-client-ts can work on the server side. Enjoy.