๋ง์ดํ์ด์ง ์์ ๊ธฐ๋ฅ์ ์งํ ์ค์ด๋ค. ๊ตฌํํด์ผ ํ ๊ฒ์ ๋๋ค์ ์์ ํ๊ธฐ์ด๋ค. React Hook Form ์ ์ฌ์ฉํ๊ธฐ ์ ์๋ useState ๋ก ๋๋ค์ ์ํ๋ฅผ ๊ด๋ฆฌํ์๊ณ DB ์์ ์กฐํํ ์ ๋ณด๋ก setNickname() ํด์ฃผ๋ฉด ๋๋๋ฐ.. react hook form ์..? ์ด ์ฌํญ์ ๋์น๊ณ ์์ด์ ์์ ํ์ด์ง ๊ฐ๋ฉด DB ์์ ๊ฐ์ ธ์จ ์ ์ ์ ๋ณด๊ฐ ๋ณด์ด์ง ์๋๋ค. ๋ณดํต ์์ ํ์ด์ง ๊ฐ๋ฉด ์๋ ์ค์ ํด ๋์ ์ ๋ณด๊ฐ ๋จ๊ธฐ ๋ง๋ จ์ด๋.. ๋๋ ๊ธฐ์กด ์ ๋ณด๋ฅผ ํ์ํด ์ค ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค..! ์ด์React Hook form ์ ์ฌ์ฉํ ๋ DB ์ ์๋ ๊ธฐ์กด ์ ๋ณด๋ฅผ ํ๋ฉด์ ์ด๋ป๊ฒ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋๊ฐ? ํ์ฌ๋ ์์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๊ธฐ์กด์ ๋๋ค์์ด ๋ณด์ด์ง ์๋๋ค. ํด๊ฒฐ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋.. setValue ๊ฐ ์์๋ค. ์๊ฐ๋ณด๋ค ์ฝ๊ฒ..
์ด๋ฉ์ผ ์ ์ก const { data: resetData, error } = await supabase.auth.resetPasswordForEmail(email, { redirectTo: window.origin + '์ด๋ฉ์ผ ๋ณ๊ฒฝ ํ์ด์ง ๊ฒฝ๋ก', }); ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ const { data, error } = await supabase.auth.updateUser({ password: newPassword, }); ์ฐธ๊ณ ๊ณต์๋ฌธ์
ํ๋ก์ ํธ์์ ๋ง์ดํ์ด์ง ๊ฐ๋ฐ์ ๋งก์๋ค. ๋ง์ดํ์ด์ง์๋ ์ ์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ํ๋ก์ ํธ ์ฃผ์ ๊ฐ ํ๋ผ์ด๋นํ ๊ณต๊ฐ์์ ์ฌํ์ ๊ธฐ๋กํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ ๋ณด์์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ ์ค์ด์ด์ ์์๋ดค๋๋ signed URL ์ ๋ง๋ค ์ ์๋ ๊ฒ์ ์ ๊ณตํ๋ค. ์ด๊ฑฐ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. signed URL ์ด๋ ์๋ช ๋ URL ์ ์๋ฏธํ๋๋ฐ ์ฌ์ง ๋งํฌ์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํ์ฌ ํด๋น ์๊ฐ ๋์๋ง ์ ํจํ URL ์ด๋ค. signed URL ์ ์ฌ์ฉํ๋ฉด ๋งํฌ๊ฐ ๋ง๋ฃ๋๋ฉด ํด๋น ๋งํฌ์ ๋ํ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ด์ ๋ณด์์ด ๊ฐํ๋๋ค. ๊ตฌ์กฐsigned url ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ํ์ํ๋ค. ์๋gk๋ฉด ์ด๋ฏธ์ง ๋งํฌ๋ฅผ..
react hook from ๊ณผ zod ๋ฅผ ์ฌ์ฉํด์ ํ์๊ฐ์ ํผ์ ๋ง๋ค์๋ค. React hook Form ์ค์นyarn add react-hook-form Zod ์ค์นyarn add zod// react hook form ์ด๋ ๊ฐ์ด ์ฌ์ฉํ ๋ ์ค์นyarn add @hookform/resolvers ์ฝ๋"use client";import { FieldValues, useForm } from "react-hook-form";import { z } from "zod";import { zodResolver } from "@hookform/resolvers/zod";import Link from "next/link";import { useRouter } from "next/navigation";import { si..
ํธํฐ์ ์์น๋ฅผ ์ํ๋๋๋ก ๋ฐฐ์นํด๋ณด์. ์ฑํผ์ธ ๋ชฉ๋ก์ฒ๋ผ ๋ฐ์ดํฐ๊ฐ ๋ง์์ ์คํฌ๋กค์ด ์๊ธธ ๊ฒฝ์ฐ ํธํฐ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์๋๋ก ๊ฐ๊ฒ ๋๋๋ฐ, ์ฑํผ์ธ ์์ธ ํ๋ฉด์์ ์คํฌ๋กค์ด ์๊ธธ ์ ๋๋ก ๋ฐ์ดํฐ๊ฐ ๋ง์ง ์์ผ๋ฉด ํธํฐ๊ฐ ์ค์์ ์๋ฆฌ ์ก๊ณ ์๋ ํ์์ด ๋ฐ์ํ๋ค. ๐ฎ๐จ ๋ฌธ์ ์ ๋ชฉ๋ก์ ํธํฐ๊ฐ ๋ด๊ฐ ์ํ๋ ๋๋ก ์์์ ์๋์ ์ ์๋ฆฌ ์ก๊ณ ์๋ค. ๊ทธ๋ฌ๋. . ์ฑํผ์ธ ์์ธ ํ์ด์ง์์๋...๋ฐ์ดํฐ์ ์์ด ์ ๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค์ด ์๊ธฐ์ง ์๊ณ ์ ๋งคํ ์ค์์ ์์นํด ์๋ ์ํ๊ฐ ๋์๋ค. ๋ด๊ฐ ์ํ๋ ๊ฒ์.. ์คํฌ๋กค์ด ์๊ธฐ๋ฉด ์คํฌ๋กค์ด ๋๋๊ณ ํธํฐ๊ฐ ๋ณด์ด๊ณ , ๋ฐ์ดํฐ๊ฐ ๋ณ๋ก ์์ด์ ์คํฌ๋กค์ด ์๊ธฐ์ง ์๋๋ค๋ฉด ๋ทฐํฌ์ธํธ ํ๋จ์ ํธ๋๊ฐ ๋ณด์ด๋๋ก ํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํด ๋ณด์. ๋ณ๊ฒฝ ์ ์ฝ๋ ํ ..
ํค ๋ฐ๊ธriotgames developer ์ ์ ์ํ์ฌ Key ๋ฅผ ๋ฐ์๋ณด์. ๋ก๊ทธ์ธ ์๋ฃ ํ MY ACCOUNT - DASHBOARD ์์ API KEY ๋ฅผ ๋ฐ๊ธํ๋ค. ํ๊ฒฝ๋ณ์๋ฃจํธ ๊ฒฝ๋ก์ .env.local ์ ๋ฐ๊ธ๋ฐ์ key ๋ฅผ ๋ฃ๋๋ค. NEXT_PUBLIC_RIOT_API_KEY=RG...-5.....-45......d......์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก key ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์๋ฃ
- Total
- Today
- Yesterday