/usr/lib/python2.7/dist-packages/social/backends/naver.py is in python-social-auth 1:0.2.21+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | from xml.dom import minidom
from social.backends.oauth import BaseOAuth2
class NaverOAuth2(BaseOAuth2):
"""Naver OAuth authentication backend"""
name = 'naver'
AUTHORIZATION_URL = 'https://nid.naver.com/oauth2.0/authorize'
ACCESS_TOKEN_URL = 'https://nid.naver.com/oauth2.0/token'
ACCESS_TOKEN_METHOD = 'POST'
EXTRA_DATA = [
('id', 'id'),
]
def get_user_id(self, details, response):
return response.get('id')
def get_user_details(self, response):
"""Return user details from Naver account"""
return {
'username': response.get('username'),
'email': response.get('email'),
'fullname': response.get('username'),
}
def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
response = self.request(
'https://openapi.naver.com/v1/nid/getUserProfile.xml',
headers={
'Authorization': 'Bearer {0}'.format(access_token),
'Content_Type': 'text/xml'
}
)
dom = minidom.parseString(response.text.encode('utf-8').strip())
return {
'id': self._dom_value(dom, 'id'),
'email': self._dom_value(dom, 'email'),
'username': self._dom_value(dom, 'name'),
'nickname': self._dom_value(dom, 'nickname'),
'gender': self._dom_value(dom, 'gender'),
'age': self._dom_value(dom, 'age'),
'birthday': self._dom_value(dom, 'birthday'),
'profile_image': self._dom_value(dom, 'profile_image')
}
def auth_headers(self):
client_id, client_secret = self.get_key_and_secret()
return {
'grant_type': 'authorization_code',
'code': self.data.get('code'),
'client_id': client_id,
'client_secret': client_secret,
}
def _dom_value(self, dom, key):
return dom.getElementsByTagName(key)[0].childNodes[0].data
|