[SNS LOGIN] SNS 로그인시 받는 DATA분석 및 활용

FACEBOOK RESPONSE DATA

1
2
3
4
5
6
7
8
9
10
{
"authResponse": {
"accessToken": "EAAUNGBaxD3QBAN5ZAwP",
"userID": "238",
"expiresIn": 5278,
"signedRequest": "JwLCSwZmTIr6UP82lL1CFOL24nvtAp3aYmJB7pbemjI.eyJ1c2VyX2lkIjoiMjM4OTE2Nzg5NDUwODY0NiIsImNvZGUiOiJBUUNvR1RsUENrVnpsZWd3eDNRYi05bHJmNGU5X0dKd0bXRzdHR3U1JRSVVXRlRFU1RTNUM3YkJrRWYyOGx1RTRfZm5ZRnZNemNXYnQ0dEt0VkgtbVI2ZjB6OFhweHdNZFhjamRZMlI1VHdUSHRpY05yMkU4U3o1bllkSFdvc0tFbkhFTUJ3ejdFZkhlQXg1LVcyNyIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNTY0MDE4MzIyfQ",
"data_access_expiration_time": 1571794322
},
"status": "connected"
}

status는 앱 사용자의 로그인 상태를 지정합니다. status는 다음 중 하나일 수 있습니다.

  • connected - 사용자가 Facebook에 로그인하고 앱에 로그인했습니다.
  • not_authorized - 사용자가 Facebook에는 로그인했지만 앱에 로그인하지 않았습니다.
  • unknown - 사용자가 Facebook에 로그인하지 않았으므로 앱에 로그인했는지 알 수 없습니다. 또는 이전에 FB.logout()이 호출되었으므로 Facebook에 연결할 수 없습니다.
  • connected 상태인 경우 authResponse가 포함되며 다음과 같이 구성되어 있습니다.
    • accessToken - 앱 사용자의 액세스 토큰이 포함되어 있습니다.
    • expiresIn - 토큰이 만료되어 갱신해야 하는 UNIX 시간을 표시합니다.
    • reauthorize_required_in - 로그인이 만료되어 재인증이 필요하기 전까지의 시간(초)입니다.
    • signedRequest - 앱 사용자에 대한 정보를 포함하는 서명된 매개변수입니다.
    • userID - 앱 사용자의 ID입니다.

connected 가 정상적으로 되었을 경우 profile (정보)조회 가능 사전 앱 설정에 따라 제한할수있고
요청하는 DATA를 지정 (예시로 이메일 또는 이름 등 )하여 받을 수 있음.


GOOGLE+ RESPONSE DATA

gauth.currentUser.get().getAuthResponse()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

{
"token_type": "Bearer",
"login_hint": "AJDL5jnuaIYokj9TBX5defwHDYlm3wwAS_3ha8RuzhYS2JNg",
"expires_in": 3600,
"id_token": "eyJhbGciOiJSUzI1yNXFpMGFmMnZxb2tpNzVxdDlpbmtpbGNlOTVzaXUyLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE1MDY1ODEwODA4OTgxMjY1NzgwIiwiZW1haWwiOiJEVMM3JMaEs4N2RXbHZsM2VmQS9zOTYtYy9waG90by5qcGciLCJnaXZlbl9uYW1lIjoi64Ko6riwIiwiZmFtaWx5X25hbWUiOiLsnKQiLCJsb2NhbGUiOiJrbyIsImlhdCI6MTU2NDAxOTA0MiwiZXhwIjoxNTY0MDIyNjQyLCJqdGkiOiI4ZDc0MWVhMTgzMzhjM2FlY2Q1OTVlYWVhNTgxMWI5MWRkYWUyM2I5In0.aKUSck0apteYWhRLKdsWs21xqICkkmWDnA9rc97UOV0l1OECy_fo5rxf8QFKzDorsbkfuY50eG5x7PjW65Wak7DujW08kOGfwh6POBCxe_pAkwSNXpNf0g8ZHefOK2RAGzOzBmp5U2Ptg6a9pPrlIMa_eb7C-RVIHTRKM48HdcCNZN8XGq4WhEoAnZ2-ZGVQnzFgMCMusQgrMzdabAwfvHpjAdKNVR9Vq7iPSTouXiWHJfbRPNnp6LEQxlrOt8GZEVK5AFxnnDIgP26y81hfwIssNHuDNlveoWvKpyk0creKwPG5dDbrVS4c0lGAV7gimz7M40spH8CimNgowZRk6Q",
"session_state": {
"extraQueryParams": {
"authuser": "0"
}
},
"first_issued_at": 1564019043142,
"expires_at": 1564022643142,
"idpId": "google"
}

gauth.currentUser.get().getBasicProfile()

1
2
3
4
5
6
7
var profile = auth2.currentUser.get().getBasicProfile();
console.log('ID: ' + profile.getId());
console.log('Full Name: ' + profile.getName());
console.log('Given Name: ' + profile.getGivenName());
console.log('Family Name: ' + profile.getFamilyName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());


간편로그인 및 간편회원가입시 활용 DATA

access_token은 sns의 추가 api기능을 활용할 때 이용하게 된다.

간편로그인 및 간편회원가입시 실제 필요한 DATA는 userID + profile 정보이다.

SNS 회원정보 연동 DB구성(스키마) 예시

참고