[Auth.js] Error: NEXT_REDIRECT ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

2024. 6. 17. 12:14ยท๐Ÿค–์ •๋ณด๋ณด์•ˆ/๐Ÿ’ 1๋ถ„์ง€์‹

 

๋ฌธ์ œ์ 

Error: NEXT_REDIRECT ๋ฐœ์ƒํ•˜๋ฉด์„œ ๋กœ๊ทธ์ธ ์‹œ ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋˜์ง€์•Š์œผ๋ฉฐ ์ƒˆ๋กœ๊ณ ์นจ์‹œ ์ด๋™๋จ

๋ฌธ์ œ์˜ ์†Œ์Šค์ฝ”๋“œ์—์„œ๋Š” return์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. signIn ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š”๋ฐ return์ด ์‹คํ–‰๋˜์–ด ๋ฌด๋ฐ˜์‘์ธ ์ƒํ™ฉ์ด๋‹ค

"use server";

import { signIn } from "@/auth";
import { DEFAULT_LOGIN_REDIRECT } from "@/route";
import { z } from "zod";
import { AuthError } from "next-auth";
import { SignInSchema } from "@/schemas";

export const login = async (values: z.infer<typeof SignInSchema>) => {
  const validatedFields = SignInSchema.safeParse(values);
  if (!validatedFields.success) {
    return {
      result: false,
      message: { title: "๋กœ๊ทธ์ธ ์‹คํŒจ", description: "๋ถ€์ ์ ˆํ•œ ์ž…๋ ฅ๊ฐ’" },
    };
  }

  const { email, password } = validatedFields.data;

  try {
    await signIn("credentials", {
      email,
      password,
      redirectTo: DEFAULT_LOGIN_REDIRECT,
    });
    return {
      result: true,
      message: { title: "๋กœ๊ทธ์ธ ์„ฑ๊ณต", description: "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค." },
    };
  } catch (error) {
    if (error instanceof AuthError) {
      switch (error.type) {
        case "CredentialsSignin":
          return {
            result: false,
            message: { title: "๋กœ๊ทธ์ธ ์‹คํŒจ", description: "๊ณ„์ • ์ •๋ณด ๋ถˆ์ผ์น˜" },
          };
        default:
          return {
            result: false,
            message: {
              title: "๋กœ๊ทธ์ธ ์‹คํŒจ",
              description: "์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๋‹ค",
            },
          };
      }
    }
    
    // ๋ฌธ์ œ์˜ ์†Œ์Šค์ฝ”๋“œ ๋ถ€๋ถ„
    return {
      result: false,
      message: {
        title: "๋กœ๊ทธ์ธ ์‹คํŒจ",
        description: "์„œ๋ฒ„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๋‹ค",
      },
    };
  }
};

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋กœ๊ทธ์ธ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณ„๋„์˜ return ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ธฐ

"use server";

import { signIn } from "@/auth";
import { DEFAULT_LOGIN_REDIRECT } from "@/route";
import { z } from "zod";
import { AuthError } from "next-auth";
import { SignInSchema } from "@/schemas";

export const login = async (values: z.infer<typeof SignInSchema>) => {
  const validatedFields = SignInSchema.safeParse(values);
  if (!validatedFields.success) {
    return {
      result: false,
      message: { title: "๋กœ๊ทธ์ธ ์‹คํŒจ", description: "๋ถ€์ ์ ˆํ•œ ์ž…๋ ฅ๊ฐ’" },
    };
  }

  const { email, password } = validatedFields.data;

  try {
    await signIn("credentials", {
      email,
      password,
      redirectTo: DEFAULT_LOGIN_REDIRECT,
    });
  } catch (error) {
    if (error instanceof AuthError) {
      switch (error.type) {
        case "CredentialsSignin":
          return {
            result: false,
            message: { title: "๋กœ๊ทธ์ธ ์‹คํŒจ", description: "๊ณ„์ • ์ •๋ณด ๋ถˆ์ผ์น˜" },
          };
        default:
          return {
            result: false,
            message: {
              title: "๋กœ๊ทธ์ธ ์‹คํŒจ",
              description: "์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Šต๋‹ˆ๋‹ค",
            },
          };
      }
    }
    throw error;
  }
};
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿค–์ •๋ณด๋ณด์•ˆ > ๐Ÿ’ 1๋ถ„์ง€์‹' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ •๋ณด] Ubuntu Server์—์„œ Chrome Selenium ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2024.06.19
[์ •๋ณด] ๋ฉ”์ผ์„œ๋ฒ„ ์‰ฝ๊ฒŒ์„ค์น˜ํ•˜๊ธฐ docker mailserver  (0) 2024.06.17
[AI] Meta Llama 3 ์ ์šฉ ํ›„๊ธฐ  (0) 2024.06.16
[Auth.js] CloudFlare AUTH_TRUST_HOST ์„ค์ •  (0) 2024.06.10
[์  ํ‚จ์Šค] ๊ฐ‘์ž๊ธฐ Error cloning remote repo 'origin' ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•  (0) 2024.06.07
'๐Ÿค–์ •๋ณด๋ณด์•ˆ/๐Ÿ’ 1๋ถ„์ง€์‹' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ •๋ณด] Ubuntu Server์—์„œ Chrome Selenium ์‚ฌ์šฉํ•˜๊ธฐ
  • [์ •๋ณด] ๋ฉ”์ผ์„œ๋ฒ„ ์‰ฝ๊ฒŒ์„ค์น˜ํ•˜๊ธฐ docker mailserver
  • [AI] Meta Llama 3 ์ ์šฉ ํ›„๊ธฐ
  • [Auth.js] CloudFlare AUTH_TRUST_HOST ์„ค์ •
TwoIceFish
TwoIceFish
https://github.com/TwoIceFIsh
  • TwoIceFish
    Cyber-Luna
    TwoIceFish
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (598) N
      • ๐Ÿค–์ •๋ณด๋ณด์•ˆ (81)
        • ๐Ÿ’™๋ธ”๋ฃจํŒ€ (25)
        • โค๏ธ๋ ˆ๋“œํŒ€ (22)
        • ๐Ÿ’œํผํ”ŒํŒ€ (1)
        • ๐Ÿ’ 1๋ถ„์ง€์‹ (32)
      • ํ”„๋กœ์ ํŠธ (15) N
        • ๐Ÿ’Œ ์ •๋ณด๋ณด์•ˆ ๋ฉ”์ผ๋ง ์‹œ์Šคํ…œ (9) N
        • ๐Ÿ” ์ธ์ฆ์„œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (1)
        • ๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ (5)
      • ๐Ÿžํ”„๋กœ๊ทธ๋ž˜๋ฐ (49)
        • Next.js (9)
      • ๊ธฐํƒ€์ •๋ณด (68)
        • ๐ŸŒ๊ทธ๋ฆฟ์š”๊ฑฐํŠธ (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
    • ๋กœ์ผ“ํŽ€์น˜
    • ๊นƒํ—ˆ๋ธŒ
    • ์ฝ”์ฝ”๋„ˆ์ธ 
    • ๊ทธ๋ฆฟ์š”๊ฑฐํŠธ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    jsp
    ๋ฉ”์ผํ—ค๋”๋ถ„์„
    ์• ํ”ŒํŽ˜์ด ์„ค์ •๋ฐฉ๋ฒ•
    ์ธ์ฆ์„œ ์—ฌ๋Ÿฌ๊ฐœ
    ์ง€๊ฐ‘ ์•ฑ์— ์นด๋“œ ์ถ”๊ฐ€
    ์ˆ˜์ต๋ฅ  ๊ณ„์‚ฐ๊ธฐ
    ์‚ผ์„ฑ์ „์ž์šฐ
    nmap
    ํ†ฐ์บฃ ์„œ๋ธ”๋ฆฟ
    ์ฝ”์ฝ”๋„›์ธ 
    vpn ์„ค์น˜
    ์œ ๋‹ˆํ‹ฐ
    ๋ถ€ํŠธ์ŠคํŠธ๋žฉ
    jsp 200
    ์•…์„ฑ๋ฉ”์ผ
    ISMS-P
    SKํ•˜์ด๋‹‰์Šค
    Visual Studio
    ์‘๋‹ต์—†์Œ
    ๋ถ€๋™์‚ฐ ์ˆ˜์ต๋ฅ  ๊ณ„์‚ฐ๊ธฐ
    ์„œ๋ธŒ๋„๋ฉ”์ธ ์ธ์ฆ์„œ
    eclipse
    ๋ชจ์˜ํ•ดํ‚น
    ๋‹จ์ผ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ์—ฌ๋Ÿฌ๊ฐœ
    tomcat servlet
    ๋ฐฉ๋ฒ™
    vpn ์˜คํ”ˆ์†Œ์Šค
    servlet 404
    ์•…์„ฑ๋ฉ”์žƒ๋ถ„์„
    ์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ํƒˆ์ทจ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
TwoIceFish
[Auth.js] Error: NEXT_REDIRECT ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”