Closed JackCokebb closed 3 months ago
이거 위험
ex. authId:1 + email: a@b.c (가능, 여기서 authId만 ++해서 계속 쏘면 계속 회원가입 가능, 회원가입후 로그인까지 가능)
우리 토큰이 시크릿 없이 디코딩 되고 로그인에 필요한 authId와 email이 둘다 있기 때문에 언제든지 로그인 가능
email만 넣자니 email 중복 회원가입을 허용하기 때문에 유저 구분이 불가능하여 현시점에서는 email만 넣기도 불가능
1번과 2번 해결법: 백앤드에서 로그인과 회원가입 api 에서, provider ('google' or 'github') 인지를 통해서 next-auth에서 제공하는 accessToken이 유효한지 검증하는 api 를 별도로 콜해서 검증을 해야할것 같습니다.
google 같은경우는: https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=ACCESS_TOKEN 이걸로 테스트 가능하고 github의 경우는
get('https://api.github.com/user', {
headers: {
Authorization: Bearer ${accessToken},
Accept: 'application/vnd.github.v3+json'
}
});
해당 api 로 검증이 가능합니다.
3번 같은경우는 유저 구분을 provider가 google인지 github인지에 따라 중복처리도 해결이 될것 같습니다.
아 어쩔수없이 다 열어야하는구나 오키도키요~