Compare commits
2 Commits
fix/react-
...
fix/magic-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22c39fdff2 | ||
|
|
a6aae0cea1 |
@@ -303,6 +303,10 @@ export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
|||||||
|
|
||||||
const password = watch("password");
|
const password = watch("password");
|
||||||
|
|
||||||
|
const isMagicLinkAvailable = useMemo(() => {
|
||||||
|
return isCloudEnv || (isEmailSendingEnabled && !isSignUp);
|
||||||
|
}, [isCloudEnv, isEmailSendingEnabled, isSignUp]);
|
||||||
|
|
||||||
// Determine if we should operate in magic link mode for current form state (login only)
|
// Determine if we should operate in magic link mode for current form state (login only)
|
||||||
const isMagicLinkMode = useMemo(() => {
|
const isMagicLinkMode = useMemo(() => {
|
||||||
// Magic link only viable when email sending enabled AND not sign up.
|
// Magic link only viable when email sending enabled AND not sign up.
|
||||||
@@ -390,7 +394,7 @@ export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{isCredentialsEnabled && (
|
{(isCredentialsEnabled || isMagicLinkAvailable) && (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
<Input
|
<Input
|
||||||
@@ -404,26 +408,28 @@ export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
{isCredentialsEnabled && (
|
||||||
<Input
|
<div>
|
||||||
type="password"
|
<Input
|
||||||
{...register("password", { required: true })}
|
type="password"
|
||||||
placeholder={t`Enter your password`}
|
{...register("password", { required: true })}
|
||||||
/>
|
placeholder={t`Enter your password`}
|
||||||
{errors.password && (
|
/>
|
||||||
<p className="mt-2 text-xs text-red-400">
|
{errors.password && (
|
||||||
{errors.password.message ??
|
<p className="mt-2 text-xs text-red-400">
|
||||||
t`Please enter a valid password`}
|
{errors.password.message ??
|
||||||
</p>
|
t`Please enter a valid password`}
|
||||||
)}
|
</p>
|
||||||
</div>
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{loginError && (
|
{loginError && (
|
||||||
<p className="mt-2 text-xs text-red-400">{loginError}</p>
|
<p className="mt-2 text-xs text-red-400">{loginError}</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{isCredentialsEnabled && (
|
{(isCredentialsEnabled || isMagicLinkAvailable) && (
|
||||||
<div className="mt-[1.5rem] flex items-center gap-4">
|
<div className="mt-[1.5rem] flex items-center gap-4">
|
||||||
<Button
|
<Button
|
||||||
isLoading={isLoginWithEmailPending}
|
isLoading={isLoginWithEmailPending}
|
||||||
|
|||||||
@@ -129,6 +129,11 @@ export const initAuth = (db: dbClient) => {
|
|||||||
user: schema.users,
|
user: schema.users,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
session: {
|
||||||
|
expiresIn: 60 * 60 * 24 * 30, // 30 days
|
||||||
|
updateAge: 60 * 60 * 24 * 2, // Update session expiry every 48 hours if user is active
|
||||||
|
freshAge: 0,
|
||||||
|
},
|
||||||
emailAndPassword: {
|
emailAndPassword: {
|
||||||
enabled: env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true",
|
enabled: env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true",
|
||||||
disableSignUp:
|
disableSignUp:
|
||||||
|
|||||||
Reference in New Issue
Block a user