보통 이런 경우 유저의 ID를 로컬에 보관하고 있나요?

예를 들면 앱에서 로그인을 한 후 프로필 버튼을 눌러서 자신의 정보를 본다던지, 혹은 그 외에 어떤 그 사람만의 고유한 정보가 필요한 경우 UserId나 어떤 값을 가지고 데이터베이스에서 검색을 한 후 가져와야 하는데, 그럼 이 때 사용할 UserId 같은 것은 로그인 시 로컬에 보관하고 있다가 사용을 하나요? 보통 이런 경우 어떻게 처리하는게 일반적인가요?

보통 토큰으로 관리합니다

해당 내용이 참고하시기 좋을거 같네요

1 Like

아하, ChatGPT한테 물어 봤을 때 여러 방법이 나와서 믿음이 안가서 질문 올렸는데,
그 중 저게 맞는 거였군요. 답변 감사합니다!

1 Like

사용자 식별 정보는 기본적으로 UserId 가 아니라, 인증 티켓에 저장하는 편입니다.
인증 티켓에는 사용자의 Claims 가 포함되어 있는데, Claims 에는 어떠한 정보도 포함될 수 있습니다. UserId도 포함될 수도 있습니다.

인증 티켓을 사용하는 이유는 성능상 이득이 있기 때문입니다.
만약, UserId 만 주고 받으면 User 정보를 보기 위해서는 매번 Db에 접속을 해야 하지만, 아예 몇 가지 데이터를 저장해 놓으면, Db 접속할 필요 없이 그 데이터만 보면 되기 때문입니다.

쿠키 방식인 경우, 보통 인증 티켓은 암호화되는 반면, JWT 방식이면, 엔코딩됩니다. (평문과 같습니다)

사실 JWT 는 암호화가 안되어 있기 때문에, 사용자 정보 저장 매체(인증 티켓) 용도보다는, 서버의 서명 확인이나, 서버 사이의 데이터 교환에 적합하다고 할 수 있습니다.

그런데, 서버의 서명확인은 SSL 인증서가 많이 사용되기 때문에, 서버 사이의 데이터 교환이 유일한 용도라고 보는 게 좋습니다.

1 Like

아, 답변 해주신 내용으로 검색하고 영상을 봤더니 적어도 해당 단어들에 대해서는 알게 됐네요. 이제 어떻게 구현하는지만 알면 되겠네요. 답변 감사합니다!

1 Like