Skip to content

Commit

Permalink
chore(release): automatic release v0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
homarr-releases[bot] authored Oct 11, 2024
2 parents 49d6932 + 511c9a4 commit 1f0f891
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 45 deletions.
2 changes: 1 addition & 1 deletion apps/nextjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"@types/node": "^20.16.11",
"@types/prismjs": "^1.26.4",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@types/react-dom": "^18.3.1",
"@types/swagger-ui-react": "^4.18.3",
"concurrently": "^9.0.1",
"eslint": "^9.12.0",
Expand Down
42 changes: 38 additions & 4 deletions packages/auth/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ import { EmptyNextAuthProvider } from "./providers/empty/empty-provider";
import { filterProviders } from "./providers/filter-providers";
import { OidcProvider } from "./providers/oidc/oidc-provider";
import { createRedirectUri } from "./redirect";
import { generateSessionToken, sessionTokenCookieName } from "./session";
import { expireDateAfter, generateSessionToken, sessionTokenCookieName } from "./session";

// See why it's unknown in the [...nextauth]/route.ts file
export const createConfiguration = (provider: SupportedAuthProvider | "unknown", headers: ReadonlyHeaders | null) =>
NextAuth({
export const createConfiguration = (provider: SupportedAuthProvider | "unknown", headers: ReadonlyHeaders | null) => {
const adapter = createAdapter(db, provider);
return NextAuth({
logger: {
error: (code, ...message) => {
// Remove the big error message for failed login attempts
Expand All @@ -33,7 +34,7 @@ export const createConfiguration = (provider: SupportedAuthProvider | "unknown",
},
},
trustHost: true,
adapter: createAdapter(db, provider),
adapter,
providers: filterProviders([
Credentials(createCredentialsConfiguration(db)),
Credentials(createLdapConfiguration(db)),
Expand All @@ -42,6 +43,38 @@ export const createConfiguration = (provider: SupportedAuthProvider | "unknown",
]),
callbacks: {
session: createSessionCallback(db),
// eslint-disable-next-line no-restricted-syntax
signIn: async ({ user }) => {
/**
* For credentials provider only jwt is supported by default
* so we have to create the session and set the cookie manually.
*/
if (provider !== "credentials" && provider !== "ldap") {
return true;
}

if (!adapter.createSession || !user.id) {
return false;
}

const expires = expireDateAfter(env.AUTH_SESSION_EXPIRY_TIME);
const sessionToken = generateSessionToken();
await adapter.createSession({
sessionToken,
expires,
userId: user.id,
});

cookies().set(sessionTokenCookieName, sessionToken, {
path: "/",
expires: expires,
httpOnly: true,
sameSite: "lax",
secure: true,
});

return true;
},
},
events: {
signIn: createSignInEventHandler(db),
Expand All @@ -68,3 +101,4 @@ export const createConfiguration = (provider: SupportedAuthProvider | "unknown",
},
},
});
};
80 changes: 40 additions & 40 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1f0f891

Please sign in to comment.