Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/309 #310

Merged
merged 6 commits into from
Jun 4, 2024
Merged

Fix/309 #310

merged 6 commits into from
Jun 4, 2024

Conversation

ohgus
Copy link
Contributor

@ohgus ohgus commented May 26, 2024

#️⃣연관된 이슈

close: #309

📝작업 내용

  • 리퀘스트 인터셉터에서 reissue 요청에 대해서는 엑세스 토큰을 설정하지 않게 수정.
  • 리이슈를 호출하기 전에 엑세스 토큰을 제거.
  • 오리진 리퀘스트의 기존 데이터를 살려서 다시 반환하게 수정.
  • 오리진 리퀘스트의 형태에 따라서(배열, 객체) 데이터를 리턴하게 수정.
  • 오리진 리퀘스트에 리프레시 토큰이 있는 경우에만 리프레시 토큰을 새로운 값으로 교체하게 수정.

🙏리뷰 요구사항(선택)

현재 엑세스 토큰 만료에 대해서는 로직이 수정되었습니다.
하지만 추후에 에러 코드가 세분화되면 수정이 필요할거 같습니다.

@ohgus ohgus self-assigned this May 26, 2024
Copy link

vercel bot commented May 26, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
kakao-funding ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 3, 2024 4:54pm

@@ -51,8 +54,8 @@ apiV1.interceptors.response.use(
// if (error.response.data.message === 'Unauthorized') {
const originRequest = config;
const usersRefreshToken = getLocalStorageItem('refreshToken');
delete apiV1.defaults.headers.common.Authorization;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 객체 프로퍼티 삭제할 때 null을 할당하지 않고 delete로 키 자체를 삭제해야만 적용되나요?
delete를 사용할 때 주의할 점, 문제점이 있다고 알고 있어서 여쭤봅니다.
아래 링크와 또 더 찾아보시면 좋을 것 같아요.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 delete가 문제가 있어서 사용하지 않는게 좋다는 점은 인지를 하고 있었는데 처음 테스트를할 때 delete를 하지 않으면 제대로 동작하지 않아서 적용을 했습니다.

근데 이후에 리퀘스트 로직을 수정하고는 테스트해보지 못해서 내일 추가적으로 테스트를 해보겠습니다.

if (accessToken) {
const reissueUrlPattern = /\/oauth\/reissue/;

if (accessToken && !reissueUrlPattern.test(newConfig.url || '')) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test()는 인자로 받은 문자열에 대해 정규표현식을 검사하는 함수로 알고 있습니다.
지금 코드는 요청 url이 /oauth/reissue인지 확인하는 것 같아요.
그런데 인자가 apiUrl || ''로 되어 있는데, 여기에 빈 문자열('')은 왜 들어가는 건가요?
어떤 역할을 하는 건지 궁금합니다.

Copy link
Contributor Author

@ohgus ohgus May 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

url에 항상 값이 있는게 아니라서 ts에서 에러를 보내주더라고요 그래서 값이 없는 경우에는 빈문자열을 대입하게 사용했습니다.

그 방법이 추가적인 조건문을 생성하는 방법보다 좋다고 생각해서 적용을 했는데 별로일까요...?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 이해했습니다 !

@ohgus ohgus merged commit e43aafe into dev Jun 4, 2024
3 checks passed
@ohgus ohgus deleted the fix/309 branch June 4, 2024 08:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

reissue 요청에 Authorization 헤더가 담기는 에러 수정
3 participants