Repository URL to install this package:
Version:
0.2.10 ▾
|
from social.backends.oauth import BaseOAuth2
class MineIDOAuth2(BaseOAuth2):
"""MineID OAuth2 authentication backend"""
name = 'mineid'
_AUTHORIZATION_URL = '%(scheme)s://%(host)s/oauth/authorize'
_ACCESS_TOKEN_URL = '%(scheme)s://%(host)s/oauth/access_token'
ACCESS_TOKEN_METHOD = 'POST'
SCOPE_SEPARATOR = ','
EXTRA_DATA = [
]
def get_user_details(self, response):
"""Return user details"""
return {'email': response.get('email'),
'username': response.get('email')}
def user_data(self, access_token, *args, **kwargs):
return self._user_data(access_token)
def _user_data(self, access_token, path=None):
url = '%(scheme)s://%(host)s/api/user' % self.get_mineid_url_params()
return self.get_json(url, params={'access_token': access_token})
@property
def AUTHORIZATION_URL(self):
return self._AUTHORIZATION_URL % self.get_mineid_url_params()
@property
def ACCESS_TOKEN_URL(self):
return self._ACCESS_TOKEN_URL % self.get_mineid_url_params()
def get_mineid_url_params(self):
return {
'host': self.setting('HOST', 'www.mineid.org'),
'scheme': self.setting('SCHEME', 'https'),
}