mirror of
https://github.com/ajnart/homarr.git
synced 2026-02-28 01:10:54 +01:00
refactor: replace signIn callback with signIn event, adjust getUserByEmail in adapter to check provider (#1223)
* refactor: replace signIn callback with signIn event, adjust getUserByEmail in adapter to check provider * test: adjusting tests for adapter and events * docs: add comments for unknown auth provider * fix: missing dayjs import
This commit is contained in:
@@ -1,17 +1,37 @@
|
||||
import { NextRequest } from "next/server";
|
||||
|
||||
import { createHandlers } from "@homarr/auth";
|
||||
import type { SupportedAuthProvider } from "@homarr/definitions";
|
||||
import { logger } from "@homarr/log";
|
||||
|
||||
export const GET = async (req: NextRequest) => {
|
||||
return await createHandlers(isCredentialsRequest(req)).handlers.GET(reqWithTrustedOrigin(req));
|
||||
return await createHandlers(extractProvider(req)).handlers.GET(reqWithTrustedOrigin(req));
|
||||
};
|
||||
export const POST = async (req: NextRequest) => {
|
||||
return await createHandlers(isCredentialsRequest(req)).handlers.POST(reqWithTrustedOrigin(req));
|
||||
return await createHandlers(extractProvider(req)).handlers.POST(reqWithTrustedOrigin(req));
|
||||
};
|
||||
|
||||
const isCredentialsRequest = (req: NextRequest) => {
|
||||
return req.url.includes("credentials") && req.method === "POST";
|
||||
/**
|
||||
* This method extracts the used provider from the url and allows us to override the getUserByEmail method in the adapter.
|
||||
* @param req request containing the url
|
||||
* @returns the provider or "unknown" if the provider could not be extracted
|
||||
*/
|
||||
const extractProvider = (req: NextRequest): SupportedAuthProvider | "unknown" => {
|
||||
const url = new URL(req.url);
|
||||
|
||||
if (url.pathname.includes("oidc")) {
|
||||
return "oidc";
|
||||
}
|
||||
|
||||
if (url.pathname.includes("credentials")) {
|
||||
return "credentials";
|
||||
}
|
||||
|
||||
if (url.pathname.includes("ldap")) {
|
||||
return "ldap";
|
||||
}
|
||||
|
||||
return "unknown";
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user