리프레시토큰
미해결
코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 강의 잘보고있습니다. 현재 엑세스토큰이 만료되면 다시 발급받는데 만약에 리프레시 토큰이 만료되면 어떻게 처리가 되고있는지 이해가 좀 안갑니다 ㅠ
- react
- typescript
- spring-boot
- jpa
- jwt
176만명의 커뮤니티!! 함께 토론해봐요.
미해결
코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 강의 잘보고있습니다. 현재 엑세스토큰이 만료되면 다시 발급받는데 만약에 리프레시 토큰이 만료되면 어떻게 처리가 되고있는지 이해가 좀 안갑니다 ㅠ
미해결
코드로 배우는 React 19 with 스프링부트 API서버
지금 로그인 확인을 {loginStatus && ( <> <li className="pr-6 text-2xl"> <NavLink to="/todo/">Todo</NavLink> </li> <li className="pr-6 text-2xl"> <NavLink to="/products/">Product</NavLink> </li> </> )} 로 해주셨는데 조건을 loginStatus === 'fulfilled' 로 해야 하지 않나요 ?
미해결
코드로 배우는 React 19 with 스프링부트 API서버
아 이해했습니다 .. 잘못생각했었네요 .
미해결
코드로 배우는 React 19 with 스프링부트 API서버
코드로배우는 스프링 웹프로젝트 책 '필독' 추천드립니다. 개인적으로 스프링 처음 공부할때 최고의 책입니다.
미해결
코드로 배우는 React 19 with 스프링부트 API서버
spring boot 3.4.3버전에 CRUD를 완성해서 로그인 로직을 추가하기로 하였습니다. 문제는 build.gradle 의 dependencies에 dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation 'org.springframework.security:spring-security-test' } 를 추가하면 기존의 화면에서 데이터에서 값을 가져오는 부분이 처리 불가 상태가 되어버립니다. 그래서 데이터없이 빈 화면가 표시하는 상태가 되어버리는데, 이런 문제는 어떻게 대처해야 하나요?
미해결
코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 강의 잘 듣고있습니다 CRA 라고 설명해주셨는데 이게 뭔가용?? CSR 혹은 SSR 말씀 하시는건가요 ??
미해결
AI로 코드 짤 때 꼭 알아야 할 백엔드 개념 ①
강의 잘 듣고있습니다~ 혹시 강의 자료는, 다운받을수없을까요?
미해결
코드로 배우는 React 19 with 스프링부트 API서버
아니 음성끊기는데 이거 보완안하시고 그냥 올리신건가요?
미해결
Beginning Kubernates-Based MSA (with Spring Boot) - Part 1
안녕하세요. 자문자답해봅니다. PowerShell 7.6.6 PS C:\Users\MZC-USER> kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo base64: 'base64' 용어는 cmdlet, 함수, 스크립트 파일 또는 실행 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함되어 있으면 경로가 올바른지 확인하고 다시 시도합니다. 명령 파이프라인 위치 1에서 cmdlet Write-Output 다음 매개 변수에 대한 값을 제공하세요. InputObject: PS C:\Users\USER> $pwd = kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" PS C:\Users\USER> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($pwd)) ................ PS C:\Users\USER>
미해결
Beginning Kubernates-Based MSA (with Spring Boot) - Part 1
안녕하세요, 자바 웹 개발 워크북으로 백엔드 개발에 입문한 개발자입니다. 제가 딱 듣고 싶었던 주제의 강의 제작해주셔서 들어보려고 하는데요,,, 혹시 다름이 아니라, 혹시 강의를 수강하면서 코드를 개인 깃에 올려도 될지 문의드리고 싶습니다. 감사합니다.
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
guide.md 파일이 누락되었습니다 확인부탁드립니다.
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
next-themes 문서를 읽어보고 다른 분들 사용방법을 읽어봤는데, 따로 NextThemeProvier를 생성하지 않고 next-themes의 ThemeProvider를 layout.tsx에 바로 적용하는데 강의에서는 따로 provider를 생성해서 적용하고 있습니다. 혹시 유지보수를 좀 더 원활하게 하기 위함일까요?
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
post를 렌더링 하려고 코드 작성을 다 했는데 에러가 뜨길래 잘못된 코드는 없나 다 확인을 해도 별 다른 이상한점이 없어서 직접 localhost:4000/posts로 접근해보니 아예 데이터가 안넘어오고 있어요 확인해주시면 감사하겠습니다.
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
제공해주신 스니펫을 적용해 nlayout 을 쳤는데 맥북 최상위루트부터 아예 싹다 파일경로가 입력되고있어요 export default function ~/Documents/.../section04/04-04/src/app/(auth)({ children }: Readonly<{ children: React.ReactNode }>) { return <>{children}</>; }
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
안녕하세요, 저는 회사에서 next.js로 포팅하여 개인적으로 좀 공부하고 있는 학생입니다. 현재 2강 할 일 관리 앱을 보면서 저희 회사의 작업 방식을 함께 생각해봤는데 저희 회사는 꼭 필요한 부분 (iron-session을 이용하여 세션을 가져온다거나)을 제외하고는 죄다 클라이언트 컴포넌트로 바꿔서 사용하고 있습니다. 그래서 이 작업을 진행하면서도 클라이언트 컴포넌트로 모두 바꾸어 진행한다면 어떨까라고 생각이 들었었는데 과제에서는 최소한의 컴포넌트만 클라이언트 컴포넌트로 바꾸라고 하신 이유가 궁금합니다. 감사합니다!
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
카카오 로그인 후 이메일을 입력하고 몽고DB에 이메일과 refresh token이 저장된 것 까지 확인은 했는데 쿠키가 생성되지 않고 있네요. 강사님 네이버메일로 소스코드링크를 보냈습니다.
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
이메일 입력 후 contitnue 버튼을 누르면 JWT auth error invalid token 오류가 나네요. 몇시간째 보고 있는데 원인을 찾지 못하겠네요. 전체 소스 코드를 같이 첨부하고 싶은데 할 수 가 없네요. 일단은 EmailInfoForm 소스만 올려 봅니다. backend는 .env 빼고 소스를 특별하게 수정한 부분이 없습니다. 브라우저 application 데이터도 클리어 해보고 했지만 소용이 없네요. 확인 부탁드립니다. "use client"; import {useState} from "react"; import {MailIcon} from "../ui/Icons"; import {validateEmail} from "@/lib/validation"; import clientApi from "@/lib/api/clientApi"; import {useRouter, useSearchParams} from "next/navigation"; export default function EmailInfoForm() { const router = useRouter(); const searchParams = useSearchParams(); const accessToken = searchParams.get("access_token") ?? ""; const [email, setEmail] = useState(""); const [error, setError] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const handleFormSubmit = async (e: React.SubmitEvent<HTMLFormElement>) => { e.preventDefault(); if (isSubmitting) return; setError(""); //이메일 검증 const validationError = validateEmail(email); if (validationError) { setError(validationError); return; } //확인 대화 상자 const confirmed = window.confirm( "한 번 입력한 이메일은 변경할 수 없습니다. 이 이메일로 저장할까요?", ); if (!confirmed) return; setIsSubmitting(true); try { const res = await clientApi("/auth/update-email", { method: "PATCH", body: JSON.stringify({email: email.trim()}), headers: { Authorization: `Bearer ${accessToken}`, }, }); if (!res.ok) { const errorData = await res.json().catch(() => null); throw new Error( (errorData && errorData.error) || "이메일 업데이트에 실패하였습니다.", ); } router.replace("/"); router.refresh(); } catch (e) { setError( e instanceof Error ? e.message : "이메일 업데이트에 실패하였습니다.", ); } }; return ( <> <form className="flex flex-col gap-5" onSubmit={handleFormSubmit}> <div className="flex flex-col gap-2"> <label htmlFor="email" className="text-sm font-medium text-foreground" > Email Address </label> <div className="relative"> <MailIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" /> <input id="email" type="email" placeholder="Enter your email" className="h-11 w-full rounded-lg border-none bg-secondary pl-10 pr-4 text-sm text-foreground placeholder-muted-foreground outline-none focus:ring-2 focus:ring-primary" value={email} onChange={(e) => setEmail(e.target.value)} /> </div> </div> {error && ( <p className="text-sm font-medium text-destructive">{error}</p> )} <div className="grid grid-cols-2 gap-3"> <button type="button" className="h-11 rounded-lg bg-secondary text-sm font-medium text-secondary-foreground transition-colors hover:opacity-90" > Cancel </button> <button type="submit" className="h-11 rounded-lg bg-primary text-sm font-medium text-primary-foreground transition-colors hover:opacity-90" > Continue </button> </div> </form> </> ); }
해결됨
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
73. Next.JS의 캐싱 전략 4가지 74. 데이터 캐시 - 1 (이론) 74. 데이터 캐시 - 1 (이론) 강의가 누락된거같아요 73. Next.JS의 캐싱 전략 4가지와 같은 강의가 재생됩니다.
미해결
카카오,구글 SNS 로그인(springboot3, vue3)
카카오 데브톡 응답에 따르면 프론트/백엔드 분할 책임 방식이 지양한다고 합니다. 오히려 백에서 로그인 구현을 일임하는 것을 권장합니다. https://devtalk.kakao.com/t/oauth/136448 해당 블로그에서도 책임을 프론트와 백엔드가 나누어 가지는 방식 이 잘못되었다고 합니다. https://cafe.naver.com/xxxjjhhh/296 카카오 로그인 REST API에서도 백에서 인가 코드를 받습니다. https://developers.kakao.com/docs/ko/kakaologin/rest-api#before-you-begin-process 어떤 방식이 맞는지 헷갈립니다.
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
저는 npm i lucide-react로 아이콘을 사용하고 있는데 미션에 제공하는거랑 버전도 다르고 아이콘도 다른데 제가 따로 다른 명령어로 설치하고 있는걸까요?