프로젝트 개발 중 생각한 방식!
여러 개의 계정을 개시할 때 복잡해지는 경우가 많은데, 특히 같은 브라우저에서 다른 계정을 개시할 때 고유한 정보가 남아있으면 문제가 될 수 있다.
특히, 회원가입 후가 되도 기존의 토큰이 공유되면, 새로 개시된 계정이 기존 사용자로 로그인 되는 문제가 발생할 수 있다.
현재 발생하는 문제: 회원가입후 여전한 결과
현재 회원가입을 한 후, localStorage에 고유되는 토큰이 보이고 있는 경우가 많다.
회원가입 성공: {message: '요청에 성공했습니다.'}
apiClient.jsx:17 🔑 ACCESS-AUTH-KEY: eyJhbGciOiJIUzI1NiJ9...
apiClient.jsx:18 🔄 REFRESH-AUTH-KEY: eyJhbGciOiJIUzI1NiJ9...
이 경우, 회원가입만 했을 뿐인데도 이전 사용자의 accessToken과 refreshToken이 경우에 복합되어 있어서 문제가 되는 경우에 해당한다.
해결 방법: 회원가입 후 기존 토큰 삭제
회원가입 시 기존 토큰을 삭제하면, 새로운 계정을 개시할 때 개발자에게 더 보통적인 테스트 클릭을 제공할 수 있다.
export const signup = async (username, email, password) => {
try {
// ✅ 회원가입 전, 기존 로그인 정보 삭제
localStorage.removeItem('token');
localStorage.removeItem('refreshToken');
localStorage.removeItem('userId');
const response = await apiClient.post('/auth/signup', {
username,
email,
password,
});
console.log('✅ 회원가입 성공:', response.data);
return response.data;
} catch (error) {
console.error('📌 회원가입 요청 실패:', error.response?.data || error.message);
throw error;
}
};
결론 : 로컬스토리지를 써서 토크나이징을 할때 고유하게 저장하려면
- 회원가입 후 기존 토큰 삭제: 새로운 계정을 복합하지 않고, 보유를 보정.
- 자유로 로그인 원하면 API 호출하여 토큰 반환: 회원가입 후 자동 로그인 원하면 API 호출 후 localStorage 에 복합하는 방법으로 결과 발생.
'FrontEnd Develop' 카테고리의 다른 글
상태변경함수 x prev 매개변수 세상에서 제일 쉽게 설명하기 (0) | 2025.02.14 |
---|---|
📊 Timer 활용한 그래프 상승 애니메이션 아이디어 개발 (0) | 2025.01.31 |
Emotion을 활용한 스타일 재활용에 대한 생각 (0) | 2025.01.27 |
⏿ 실제 백엔드와 프론트엔드 통신 #5: Content-Type 다양화하기 (Using Axios Instance & Interceptor (0) | 2025.01.26 |
⏿ 실제 백엔드와 프론트엔드 통신 #4. Axios Instance에서 셋의 비동기적 공존 (0) | 2025.01.24 |