payload-zitadel-plugin
Version:
plugin for Payload CMS, which enables authentication via Zitadel IdP
22 lines (21 loc) • 841 B
JavaScript
import { cookies } from 'next/headers.js';
import { COOKIES } from '../constants.js';
import { requestRedirect } from '../utils/index.js';
export const authorize = ({ issuerURL, clientId })=>async (req)=>{
const codeVerifier = Buffer.from(crypto.getRandomValues(new Uint8Array(24))).toString('base64url');
const codeChallenge = Buffer.from(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(codeVerifier))).toString('base64url');
const cookieStore = await cookies();
cookieStore.set({
...COOKIES.pkce,
value: codeVerifier,
maxAge: 300
});
return requestRedirect({
req,
issuerURL,
clientId,
invokedBy: 'authorize',
codeChallenge
});
};
//# sourceMappingURL=authorize.js.map