From c8567d0a1a8b866546736c6a74691cdba65d08b0 Mon Sep 17 00:00:00 2001 From: liangliangyy Date: Fri, 24 Mar 2017 15:05:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E5=8D=9Aoauth=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DjangoBlog/settings.py | 4 ++-- oauth/oauthmanager.py | 27 +++++++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/DjangoBlog/settings.py b/DjangoBlog/settings.py index 6300ac7..2aeab8b 100644 --- a/DjangoBlog/settings.py +++ b/DjangoBlog/settings.py @@ -200,8 +200,8 @@ CACHE_MIDDLEWARE_ALIAS = 'default' OAHUTH = { 'sina': { - 'appkey': '3161614143', - 'appsecret': 'ee17c099317f872eeddb25204ea46721', + 'appkey': os.environ.get('SINA_APP_KEY'), + 'appsecret': os.environ.get('SINA_APP_SECRET'), 'callbackurl': 'http://www.lylinux.net/oauth/authorize?type=weibo' }, 'google': { diff --git a/oauth/oauthmanager.py b/oauth/oauthmanager.py index c22a1ac..f9f9d71 100644 --- a/oauth/oauthmanager.py +++ b/oauth/oauthmanager.py @@ -96,15 +96,9 @@ class WBOauthManager(BaseOauthManager): 'redirect_uri': self.callback_url } rsp = self.do_post(self.TOKEN_URL, params) - - # return rsp - - obj = json.loads(rsp) - self.access_token = str(obj['access_token']) - self.openid = str(obj['uid']) - return self.get_oauth_userinfo() - + print(rsp) try: + obj = json.loads(rsp) self.access_token = str(obj['access_token']) self.openid = str(obj['uid']) return self.get_oauth_userinfo() @@ -119,7 +113,20 @@ class WBOauthManager(BaseOauthManager): 'access_token': self.access_token } rsp = self.do_get(self.API_URL, params) + try: + datas = json.loads(rsp) + user = OAuthUser() + user.picture = datas['avatar_large'] + user.nikename = datas['screen_name'] + user.openid = datas['id'] + user.type = 'weibo' + if 'email' in datas and datas['email']: + user.email = datas['email'] + return user + except: + logger.info('weibo oauth error.rsp:' + rsp) + return None class GoogleOauthManager(BaseOauthManager): @@ -142,7 +149,7 @@ class GoogleOauthManager(BaseOauthManager): 'scope': 'openid email', } # url = self.AUTH_URL + "?" + urllib.parse.urlencode(params, quote_via=urllib.parse.quote) - url = self.AUTH_URL + "?" + urllib.parse.urlencode(params) + url = self.AUTH_URL + "?" + urllib.parse.urlencode(params) return url def get_access_token_by_code(self, code): @@ -209,7 +216,7 @@ class GitHubOauthManager(BaseOauthManager): 'scope': 'user' } # url = self.AUTH_URL + "?" + urllib.parse.urlencode(params, quote_via=urllib.parse.quote) - url = self.AUTH_URL + "?" + urllib.parse.urlencode(params) + url = self.AUTH_URL + "?" + urllib.parse.urlencode(params) return url def get_access_token_by_code(self, code):