Merge branch 'develop' into 'main'
Restore missing CSRF header See merge request digiresilience/link/link-stack!14
This commit is contained in:
commit
599cdc3f4e
3 changed files with 12 additions and 1 deletions
|
|
@ -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 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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("; "),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue