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: #291 소셜로그인 callback URL 오류 수정 #294

Merged
merged 3 commits into from
Dec 10, 2024

Conversation

Yoonyesol
Copy link
Contributor

PR Type

What kind of change does this PR introduce?

  • [Fix] 버그를 수정했어요.
  • [Formatting] 코드 스타일 업데이트를 했어요(포맷팅, 변수명 변경 etc)
  • [Etc] 콘솔문을 추가했요.

Related Issues

What does this PR do?

  • 콜백 URL provider 대문자 -> 소문자 수정
  • 로그인 관련 데이터 확인을 위해 console.log 추가

Other information

로그인 데이터
image

Other information

로컬에서는 두 기능 모두 잘 돌아가는 것을 확인했는데 배포 환경에서는 어떨지 잘 모르겠습니다🥲
테스트해보고 원인을 찾아서 수정하도록 하겠습니다!

@Yoonyesol Yoonyesol added 🐞 Bug 버그가 발생했어요 💉 Fix 에러 혹은 버그를 수정했어요 ✨ Formatting 코드 포맷, 변수명 등을 추가/삭제/변경 했어요 labels Dec 8, 2024
@Yoonyesol Yoonyesol self-assigned this Dec 8, 2024
Copy link

coderabbitai bot commented Dec 8, 2024

Walkthrough

이 변경 사항은 소셜 로그인 기능의 제공자 이름을 대문자에서 소문자로 변경하는 것을 포함합니다. SocialButton 컴포넌트와 관련된 여러 파일에서 이 변경이 이루어졌으며, 로그인 처리 및 사용자 정보 추출 로직에도 영향을 미쳤습니다. 또한, 관련된 컴포넌트에서 에러 핸들링 및 로깅 기능이 강화되었습니다. 전반적으로, 소셜 로그인 제공자 이름의 일관성을 보장하기 위한 수정이 이루어졌습니다.

Changes

파일 경로 변경 요약
src/components/user/auth-form/SocialButton.tsx 제공자가 Google인지 확인하는 조건을 대문자 'GOOGLE'에서 소문자 'google'로 변경했습니다.
src/mocks/services/authServiceHandler.ts 소셜 로그인 제공자 이름을 대문자에서 소문자로 변경하고, 제공자 구성 객체의 키도 업데이트했습니다. 이메일 추출 로직도 소문자 제공자 이름을 반영하도록 수정했습니다.
src/pages/user/SignInPage.tsx 로그인 및 사용자 정보 가져오기 과정에서 로깅 및 에러 핸들링을 강화했습니다. 제공자 값을 소문자로 변경했습니다.
src/routes/MainRouter.tsx SocialCallBackPage 컴포넌트의 제공자 prop 값을 대문자에서 소문자로 변경했습니다.
src/types/UserType.tsx SocialLoginProvider 타입 정의를 대문자에서 소문자로 변경했습니다.

Possibly related PRs

Suggested reviewers

  • ice-bear98
  • Seok93

🐰 소셜 로그인, 이름 바뀌고,
구글과 카카오는 이제 소문자로,
에러 핸들링도 더 강하게,
로그인 과정이 훨씬 매끄럽게!
모두 함께 즐거운 로그인,
변화의 순간을 축하해요! 🎉


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (3)
src/components/user/auth-form/SocialButton.tsx (1)

Line range hint 23-33: 로그인 실패 시 디버깅을 위한 로깅 추가 제안

에러 처리 로직에 디버깅을 위한 로깅을 추가하면 좋을 것 같습니다.

    try {
      window.location.href = url;
    } catch (error) {
+     console.error('소셜 로그인 리다이렉션 실패:', error);
      toastError('로그인에 실패했습니다. 다시 시도해 주세요.');
      setTimeout(() => {
        navigate('/signin', { replace: true });
      }, 2000);
    }
src/mocks/services/authServiceHandler.ts (2)

Line range hint 98-110: Provider 설정이 체계적으로 구성되어 있습니다.

각 소셜 로그인 provider별 설정이 잘 구조화되어 있으며, 필요한 모든 설정 값들이 포함되어 있습니다.

리팩토링 제안:

  • 설정 객체를 별도의 상수 파일로 분리하여 관리하면 유지보수가 더욱 용이할 것 같습니다.
+ // src/constants/socialLoginConfig.ts
+ export const SOCIAL_LOGIN_CONFIG = {
+   kakao: {
+     tokenUrl: `https://kauth.kakao.com/oauth/token`,
+     // ... 나머지 설정
+   },
+   google: {
+     tokenUrl: `https://oauth2.googleapis.com/token`,
+     // ... 나머지 설정
+   },
+ };

168-168: 이메일 추출 로직이 provider에 맞게 수정되었습니다.

provider 값 비교 시 소문자 문자열을 사용하도록 수정된 것이 적절합니다.

추가 제안:

  • 에러 발생 시 더 자세한 로그를 추가하면 디버깅에 도움이 될 것 같습니다.
- const email = provider === 'kakao' ? userInfo.kakao_account.email : userInfo.email;
+ const email = provider === 'kakao' ? userInfo.kakao_account?.email : userInfo.email;
+ console.log(`[Social Login] Provider: ${provider}, Email extraction result:`, { email, userInfo });
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 387a091 and cbe4bc4.

📒 Files selected for processing (5)
  • src/components/user/auth-form/SocialButton.tsx (1 hunks)
  • src/mocks/services/authServiceHandler.ts (3 hunks)
  • src/pages/user/SignInPage.tsx (3 hunks)
  • src/routes/MainRouter.tsx (1 hunks)
  • src/types/UserType.tsx (1 hunks)
🧰 Additional context used
📓 Learnings (1)
src/types/UserType.tsx (1)
Learnt from: Yoonyesol
PR: GU-99/grow-up-fe#191
File: src/types/UserType.tsx:3-9
Timestamp: 2024-11-10T03:54:59.892Z
Learning: provider별 분기가 필요한 부분에서는 'KAKAO'와 'GOOGLE' 문자열 리터럴을 직접 사용하며, 이를 'SocialLoginProvider' 타입으로 치환할 수 없다.
🔇 Additional comments (4)
src/types/UserType.tsx (1)

3-3: 타입 정의 변경에 따른 영향도 검토 필요

SocialLoginProvider 타입의 리터럴 값이 소문자로 변경되었습니다. 이전 학습 내용에 따르면 대문자 리터럴이 필요했던 것으로 보이는데, 이 변경으로 인한 영향을 검토해야 합니다.

src/pages/user/SignInPage.tsx (1)

105-106: 소셜 로그인 제공자 속성값 변경 확인

provider 속성값이 소문자로 변경되었습니다. 타입 정의 변경과 일관성 있게 적용되었습니다.

src/routes/MainRouter.tsx (1)

49-50: 소셜 로그인 provider 값이 올바르게 수정되었습니다.

provider 값을 대문자에서 소문자로 변경한 것이 적절합니다. 이는 소셜 로그인 callback URL 오류를 해결하는데 도움이 될 것입니다.

다만, 다음 사항을 확인해주시기 바랍니다:

  • 배포 환경에서 callback URL이 정상적으로 작동하는지 테스트
  • 관련 환경 변수(VITE_KAKAO_REDIRECT_URI, VITE_GOOGLE_REDIRECT_URI)가 올바르게 설정되어 있는지 확인
src/mocks/services/authServiceHandler.ts (1)

91-91: 유효한 provider 목록이 올바르게 수정되었습니다.

소문자로 된 provider 값들이 일관성 있게 정의되어 있습니다.

src/pages/user/SignInPage.tsx Show resolved Hide resolved
Copy link
Contributor

@Seok93 Seok93 left a comment

Choose a reason for hiding this comment

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

수정 내용 확인했습니다. ai가 지적한대로 mockData쪽 더미데이터 내용도 수정해야할 것 같아요. 수정해서 다시 올리시면 approve 드릴게요.

@Yoonyesol
Copy link
Contributor Author

@Seok93 mockData를 깜빡했네요;;ㅎ 해당 부분 수정했습니다!

Copy link
Contributor

@Seok93 Seok93 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다!

@Seok93 Seok93 merged commit 3529f62 into develop Dec 10, 2024
1 check passed
@Seok93 Seok93 deleted the feature/#291-fix-callback-url-and-add-console-log branch December 10, 2024 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐞 Bug 버그가 발생했어요 💉 Fix 에러 혹은 버그를 수정했어요 ✨ Formatting 코드 포맷, 변수명 등을 추가/삭제/변경 했어요
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants