[Python-modules-commits] [python-social-auth] 11/131: add coding oauth

Wolfgang Borgert debacle at moszumanska.debian.org
Sat Dec 24 15:16:55 UTC 2016


This is an automated email from the git hooks/post-receive script.

debacle pushed a commit to tag v0.2.20
in repository python-social-auth.

commit 7e2d46d67576507afc729e069718b2b2ce716996
Author: Joway <joway at joway.wang>
Date:   Mon Apr 11 08:19:02 2016 +0800

    add coding oauth
    
    add coding(https://coding.net) oauth2
---
 social/backends/coding.py | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/social/backends/coding.py b/social/backends/coding.py
new file mode 100644
index 0000000..ee9b2af
--- /dev/null
+++ b/social/backends/coding.py
@@ -0,0 +1,45 @@
+"""
+Coding OAuth2 backend, docs at:
+"""
+from six.moves.urllib.parse import urljoin
+
+from social.backends.oauth import BaseOAuth2
+
+
+class CodingOAuth2(BaseOAuth2):
+    """Coding OAuth authentication backend"""
+
+    name = 'coding'
+    API_URL = 'https://coding.net/api/'
+    AUTHORIZATION_URL = 'https://coding.net/oauth_authorize.html'
+    ACCESS_TOKEN_URL = 'https://coding.net/api/oauth/access_token'
+    ACCESS_TOKEN_METHOD = 'POST'
+    SCOPE_SEPARATOR = ','
+    DEFAULT_SCOPE = ['user']
+    REDIRECT_STATE = False
+
+    def api_url(self):
+        return self.API_URL
+
+    def get_user_details(self, response):
+        """Return user details from Github account"""
+        fullname, first_name, last_name = self.get_user_names(
+            response.get('name')
+        )
+        return {'username': response.get('name'),
+                'email': response.get('email') or '',
+                'fullname': fullname,
+                'first_name': first_name,
+                'last_name': last_name}
+
+    def user_data(self, access_token, *args, **kwargs):
+        """Loads user data from service"""
+        data = self._user_data(access_token)
+        if data.get('code') != 0:
+            # 获取失败
+            pass
+        return data.get('data')
+
+    def _user_data(self, access_token, path=None):
+        url = urljoin(self.api_url(), 'account/current_user{0}'.format(path or ''))
+        return self.get_json(url, params={'access_token': access_token})

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-social-auth.git



More information about the Python-modules-commits mailing list