개발자
웹으로 구현했을때는 리다이렉트 url등으로 백단에서 인증 받아서 진행 했었는데 네이티브 앱에서의 Oauth2 Docs를 보고있는데 앱단에서 모든 처리를 하는 걸로 보여서요 그럼 그 이후에 그 사람의 프로필정보나 아이디만 보내면 백엔드에서 그걸로 로그인이나 회원가입이 되는게 맞나요? 그렇게 되면 로그인이나 회원가입 api url만 알고있으면 postman으로 아무 닉네임이나 보내면 회원가입이나 로그인이 될 것 같은데 보통 어떤 방식으로 하는지 알고싶습니다.
답변 1
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2월 14일
네이티브 앱의 Oauth2는 웹과 비슷한 원리로 동작합니다. 클라이언트(앱)이 OAuth2 서버에 인증 요청 후, 유저가 인증하면 토큰을 발급받고 이를 사용하여 API 호출을 합니다. 그럼에도 불구하고, 네이티브 앱에서의 중요한 차이점은 리다이렉트 URL가 아닌, 앱 내에서 바로 처리가 가능한 "custom URL scheme" 또는 "App Links", "Universal Links"(iOS), "Deep Linking"(Android) 등을 사용한다는 점입니다. 이 방법으로 인증 결과를 앱 내부로 직접 전달 받습니다. 사용자의 프로필 정보나 아이디를 보내서 백엔드에서 로그인/회원 가입 처리하는 것은 맞습니다만, 중요한 점은 단순히 아이디와 프로필 정보만 가지고 회원 가입/로그인을 처리하는 것이 아니라, OAuth2 서버로부터 받은 토큰과 함께 처리해야 한다는 것입니다. 예를 들어, Google OAuth2를 사용하는 경우 사용자의 계정 정보와 함께 받은 'access token'을 백엔드에 전달합니다. 백엔드 서버는 이 토큰을 다시 Google에 확인 요청하여 실제 유효한 토큰인지 검증합니다. 이렇게 해서 토큰이 유효하면 백엔드는 그 사용자의 로그인을 인증하고 세션을 시작하거나 JWT토큰 등을 발급합니다. 따라서 단순히 Postman과 같은 도구로 아이디를 보내서 로그인/회원 가입을 시도한다 해도, OAuth2 서버로부터 발급받은 유효한 토큰 없이는 그 요청이 성공하지 않습니다. OAuth2는 Access Token과 Refresh Token을 제공하는데 당연히 이러한 토큰들은 보안적으로 관리되어야 합니다. 만일 어떤 이유에서든 이러한 데이터가 노출될 경우, 악성 사용자가 해당 정보를 매수하여 이용할 수 있으니 주의해야 합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!