From 148d252dbaee91b0ba6f57417f20ea4c8d77ba0e Mon Sep 17 00:00:00 2001 From: officer Date: Fri, 29 Aug 2025 00:18:35 +0900 Subject: [PATCH] =?UTF-8?q?next-auth=20=EB=B0=8F=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EB=B2=84=EC=A0=84=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8,=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=8F=BC=20UI=20=EA=B0=9C=EC=84=A0=20=EB=B0=8F=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EA=B3=84=EC=A0=95=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/ui/login-form.tsx | 146 ++++++++++++++++++++++-------------------- package.json | 2 +- pnpm-lock.yaml | 71 ++++++++------------ 3 files changed, 105 insertions(+), 114 deletions(-) diff --git a/app/ui/login-form.tsx b/app/ui/login-form.tsx index 87170ea..038ae9d 100644 --- a/app/ui/login-form.tsx +++ b/app/ui/login-form.tsx @@ -5,83 +5,93 @@ import { AtSymbolIcon, KeyIcon, } from '@heroicons/react/24/outline'; -import {ArrowRightIcon, ExclamationCircleIcon} from '@heroicons/react/20/solid'; +import { ArrowRightIcon, ExclamationCircleIcon } from '@heroicons/react/20/solid'; import { Button } from './button'; -import {useActionState} from "react"; -import {authenticate} from "@/app/lib/actions"; +import { useActionState } from "react"; +import { authenticate } from "@/app/lib/actions"; export default function LoginForm() { const [errorMessage, formAction, isPending] = useActionState( - authenticate, - undefined, + authenticate, + undefined, ); return ( -
-
+ +
+

계속하려면 로그인하세요.

-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- {errorMessage && ( - <> - - -

{errorMessage}

- - )} +

+ 개발용 서버입니다. 아래 계정 정보가 이미 입력되어 있으니 로그인 버튼만 클릭하세요. +

+
+

테스트 계정:

+

Email: user@nextmail.com

+

Password: 123456

- +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ {errorMessage && ( + <> + + +

{errorMessage}

+ + )} +
+
+ ); } diff --git a/package.json b/package.json index a931524..111fe9f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "bcrypt": "^5.1.1", "clsx": "^2.1.1", "next": "15.5.2", - "next-auth": "5.0.0-beta.25", + "next-auth": "5.0.0-beta.29", "postcss": "8.4.49", "react": "19.1.1", "react-dom": "19.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac48312..4402831 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: 15.5.2 version: 15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) next-auth: - specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + specifier: 5.0.0-beta.29 + version: 5.0.0-beta.29(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) postcss: specifier: 8.4.49 version: 8.4.49 @@ -82,8 +82,8 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@auth/core@0.37.2': - resolution: {integrity: sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw==} + '@auth/core@0.40.0': + resolution: {integrity: sha512-n53uJE0RH5SqZ7N1xZoMKekbHfQgjd0sAEyUbE+IYJnmuQkbvuZnXItCU7d+i7Fj8VGOgqvNO7Mw4YfBTlZeQw==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -425,9 +425,6 @@ packages: '@types/bcrypt@5.0.2': resolution: {integrity: sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -717,10 +714,6 @@ packages: console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -1279,8 +1272,8 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jose@5.9.6: - resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} + jose@6.1.0: + resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1402,8 +1395,8 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - next-auth@5.0.0-beta.25: - resolution: {integrity: sha512-2dJJw1sHQl2qxCrRk+KTQbeH+izFbGFPuJj5eGgBZFYyiYYtvlrBeUw1E/OJJxTRjuxbSYGnCTkUIRsIIW0bog==} + next-auth@5.0.0-beta.29: + resolution: {integrity: sha512-Ukpnuk3NMc/LiOl32njZPySk7pABEzbjhMUFd5/n10I0ZNC7NCuVv8IY2JgbDek2t/PUOifQEoUiOOTLy4os5A==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -1475,8 +1468,8 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. - oauth4webapi@3.1.4: - resolution: {integrity: sha512-eVfN3nZNbok2s/ROifO0UAc5G8nRoLSbrcKJ09OqmucgnhXEfdIQOR4gq1eJH1rN3gV7rNw62bDEgftsgFtBEg==} + oauth4webapi@3.8.0: + resolution: {integrity: sha512-RSu64fjsBIs6D7s9g5LOCnOohOkI0nnPtlIp/4rrHj2Vb8jGepq+fujkv2Srw4tuw9qa02aETXQzyQUle8nfnQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -1656,21 +1649,18 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - preact-render-to-string@5.2.3: - resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} + preact-render-to-string@6.5.11: + resolution: {integrity: sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==} peerDependencies: preact: '>=10' - preact@10.11.3: - resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} + preact@10.24.3: + resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - pretty-format@3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2057,15 +2047,13 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@auth/core@0.37.2': + '@auth/core@0.40.0': dependencies: '@panva/hkdf': 1.2.1 - '@types/cookie': 0.6.0 - cookie: 0.7.1 - jose: 5.9.6 - oauth4webapi: 3.1.4 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) + jose: 6.1.0 + oauth4webapi: 3.8.0 + preact: 10.24.3 + preact-render-to-string: 6.5.11(preact@10.24.3) '@emnapi/runtime@1.4.5': dependencies: @@ -2369,8 +2357,6 @@ snapshots: dependencies: '@types/node': 22.10.1 - '@types/cookie@0.6.0': {} - '@types/estree@1.0.6': {} '@types/json-schema@7.0.15': {} @@ -2725,8 +2711,6 @@ snapshots: console-control-strings@1.1.0: {} - cookie@0.7.1: {} - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -3436,7 +3420,7 @@ snapshots: jiti@1.21.6: {} - jose@5.9.6: {} + jose@6.1.0: {} js-tokens@4.0.0: {} @@ -3542,9 +3526,9 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.25(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): + next-auth@5.0.0-beta.29(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): dependencies: - '@auth/core': 0.37.2 + '@auth/core': 0.40.0 next: 15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 @@ -3596,7 +3580,7 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 - oauth4webapi@3.1.4: {} + oauth4webapi@3.8.0: {} object-assign@4.1.1: {} @@ -3761,17 +3745,14 @@ snapshots: postgres-range@1.1.4: {} - preact-render-to-string@5.2.3(preact@10.11.3): + preact-render-to-string@6.5.11(preact@10.24.3): dependencies: - preact: 10.11.3 - pretty-format: 3.8.0 + preact: 10.24.3 - preact@10.11.3: {} + preact@10.24.3: {} prelude-ls@1.2.1: {} - pretty-format@3.8.0: {} - prop-types@15.8.1: dependencies: loose-envify: 1.4.0