Merge branch 'develop' into 'main'

Restore missing CSRF header

See merge request digiresilience/link/link-stack!14
This commit is contained in:
Darren Clarke 2024-10-09 10:42:27 +00:00
commit 599cdc3f4e
3 changed files with 12 additions and 1 deletions

View file

@ -20,6 +20,9 @@ export const ZammadLoginProvider: FC<PropsWithChildren> = ({ children }) => {
if (response.status !== 200) { if (response.status !== 200) {
window.location.href = "/zammad/auth/sso"; window.location.href = "/zammad/auth/sso";
} else {
const token = response.headers.get("CSRF-Token");
update({ zammadCsrfToken: token });
} }
} }
}; };

View file

@ -118,14 +118,20 @@ export const authOptions: NextAuthOptions = {
session: async ({ session, token }) => { session: async ({ session, token }) => {
// @ts-ignore // @ts-ignore
session.user.roles = token.roles ?? []; session.user.roles = token.roles ?? [];
// @ts-ignore
session.user.zammadCsrfToken = token.zammadCsrfToken;
return session; return session;
}, },
jwt: async ({ token, user }) => { jwt: async ({ token, user, trigger, session }) => {
if (user) { if (user) {
token.roles = (await getUserRoles(user.email)) ?? []; token.roles = (await getUserRoles(user.email)) ?? [];
} }
if (session && trigger === "update") {
token.zammadCsrfToken = session.zammadCsrfToken;
}
return token; return token;
}, },
}, },

View file

@ -8,6 +8,8 @@ const getHeaders = async () => {
"Content-Type": "application/json", "Content-Type": "application/json",
Accept: "application/json", Accept: "application/json",
"X-Browser-Fingerprint": `${session.expires}`, "X-Browser-Fingerprint": `${session.expires}`,
// @ts-ignore
"X-CSRF-Token": session.user.zammadCsrfToken,
Cookie: allCookies Cookie: allCookies
.map((cookie: any) => `${cookie.name}=${cookie.value}`) .map((cookie: any) => `${cookie.name}=${cookie.value}`)
.join("; "), .join("; "),