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

Next-Auth를 걷어내고 Firebase Authentication 변경하기. #133

Closed
saseungmin opened this issue Jan 1, 2022 · 0 comments · Fixed by #134
Closed

Next-Auth를 걷어내고 Firebase Authentication 변경하기. #133

saseungmin opened this issue Jan 1, 2022 · 0 comments · Fixed by #134
Assignees
Labels
Bugfix/Function Fix to bug and isn't working invalid This doesn't seem right

Comments

@saseungmin
Copy link
Member

지금 next auth를 사용해서 로그인 구현했었다.
그리고 firestore에 유저 세션, 정보를 저장중이다.

문제가 되는점.

firestore의 보안규칙이 있는데 이 보안규칙을 적용하려면 firebase가 제공하는 next-auth가 아닌 firebase auth를 사용해야한다.
보안 규칙을 적용해야 하는 이유: https://firebase.google.com/docs/firestore/security/insecure-rules
next auth를 사용하면 보안규칙을 적용할 수 있을지 모르겠다. 관련 레퍼런스가 없다. 기본적으로 Next Auth를 사용하면 firebase V.8을 사용해야한다. 그리고 Next Auth V.3을 사용해야한다. firebaseV.9는 공식적으로 지원하지 않고 있다. 현재 실험적인 단계.

현재 보안규칙과 관련해서 next-auth adapter 레포에 질문을 올려놓은 상태

해결방법

  • 제일 명확한 해결 방안
    next auth가 아닌 Firebase Authentication로 변경하기.
    하지만 공수가 크다. firebase V.9로 마이그레이션 작업 및 next-auth로 로그인 기능을 하고있던 부분을 모두 걷어내고 Firebase Authentication로 변경
    그리고 next auth가 해줬던 사용자 인증과 관련된 부분들을 모두 구현해야한다. (access-token.. 세션 유지 등등..) 그리고 카카오 로그인은 firebase auth에서 제공하지 않아서 커스텀 인증 설정을 통해 구현해야한다.(커스텀 OAuth를 사용한 경우 세션 유지는 무조건 최대 1시간) => kakao 로그인 관련 firebase example
    장점. 답정너. firebase v.9로 마이그레이션 가능. next-auth dependency 걷어낼 수 있다.

  • 다른 해결방안.
    next-auth를 사용해 firebase에 저장을 하고 있는데 유저정보와 세션정보들을 저장하지 않는다. 저장하지 않고 JWT만 사용하여 firebase auth와 커스텀으로 연동시킨다. 그리고 firebase auth를 통해 보안 규칙을 설정할 수 있다.
    문제가 되는점은 가능한지 모르겠다. 그리고 next-auth와 firebase-auth 두 개의 디펜던시가 강하게 걸려있어서 사용자 인증 및 세션을 어떻게 유지가 되는지 명확하지 않다. next-auth와 firebase-auth 둘다 세션관리를 해줘야한다. 예를 들어, next-auth에서 로그아웃을 해주고, firebase-auth에서도 로그아웃을 해줘야한다.
    장점. 공수가 덜 든다.

결론

Next-auth를 걷어내고 firebase V.9로 마이그레이션 후 Firebase Authentication 사용
카카로 로그인 기능은 추후 적용하기

추가 가능성 => Issue에 올린곳에 보안 규칙을 적용할 수 있다는 답변이 달린다면, 다시 고민해볼필요가 있음.

@saseungmin saseungmin added invalid This doesn't seem right Bugfix/Function Fix to bug and isn't working labels Jan 1, 2022
@saseungmin saseungmin self-assigned this Jan 1, 2022
@saseungmin saseungmin pinned this issue Jan 1, 2022
saseungmin added a commit that referenced this issue Jan 2, 2022
- #133
- 기존의 로그인 세션처리를 firebase auth로 대체
- kakao 로그인은 추후 구현
saseungmin added a commit that referenced this issue Jan 2, 2022
- 기존의 next-auth로 인해 사용하지 못한 firebase V.8을 V.9로 마이그레이션
- #133
- 기존의 로그인 세션처리를 firebase auth로 대체
- kakao 로그인은 추후 구현
- firebase admin sdk 추가만
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bugfix/Function Fix to bug and isn't working invalid This doesn't seem right
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant