feat: added beforeLogin hook (#1289)
This commit is contained in:
@@ -133,6 +133,15 @@ async function login<T>(incomingArgs: Arguments): Promise<Result & { user: T}> {
|
||||
collection: collectionConfig.slug,
|
||||
});
|
||||
|
||||
await collectionConfig.hooks.beforeLogin.reduce(async (priorHook, hook) => {
|
||||
await priorHook;
|
||||
|
||||
user = (await hook({
|
||||
user,
|
||||
req: args.req,
|
||||
})) || user;
|
||||
}, Promise.resolve());
|
||||
|
||||
const token = jwt.sign(
|
||||
fieldsToSign,
|
||||
secret,
|
||||
@@ -166,7 +175,7 @@ async function login<T>(incomingArgs: Arguments): Promise<Result & { user: T}> {
|
||||
await priorHook;
|
||||
|
||||
user = await hook({
|
||||
doc: user,
|
||||
user,
|
||||
req: args.req,
|
||||
token,
|
||||
}) || user;
|
||||
|
||||
@@ -112,13 +112,14 @@ export type AfterDeleteHook<T extends TypeWithID = any> = (args: {
|
||||
|
||||
export type AfterErrorHook = (err: Error, res: unknown) => { response: any, status: number } | void;
|
||||
|
||||
export type BeforeLoginHook = (args: {
|
||||
export type BeforeLoginHook<T extends TypeWithID = any> = (args: {
|
||||
req: PayloadRequest;
|
||||
user: T
|
||||
}) => any;
|
||||
|
||||
export type AfterLoginHook<T extends TypeWithID = any> = (args: {
|
||||
req: PayloadRequest;
|
||||
doc: T;
|
||||
user: T;
|
||||
token: string;
|
||||
}) => any;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user