From b8e54d131bdd7b0387b4e2933610e07ffa913448 Mon Sep 17 00:00:00 2001 From: liangliang Date: Sat, 4 Nov 2017 11:30:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9oauth=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accounts/admin.py | 10 +++++++++- oauth/models.py | 4 ++-- oauth/oauthmanager.py | 22 ++++------------------ 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/accounts/admin.py b/accounts/admin.py index 1825613..001df08 100644 --- a/accounts/admin.py +++ b/accounts/admin.py @@ -3,4 +3,12 @@ from django.contrib import admin # Register your models here. from .models import BlogUser -admin.site.register(BlogUser) + + +class BlogUserAdmin(admin.ModelAdmin): + list_display = ('id', 'nickname', 'username','email','last_login','date_joined') + list_display_links = ('id', 'username') + + + +admin.site.register(BlogUser, BlogUserAdmin) diff --git a/oauth/models.py b/oauth/models.py index daa5d42..6725bb3 100644 --- a/oauth/models.py +++ b/oauth/models.py @@ -8,11 +8,11 @@ class OAuthUser(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='用户', blank=True, null=True) openid = models.CharField(max_length=50) nikename = models.CharField(max_length=50, verbose_name='昵称') - token = models.CharField(max_length=150) + token = models.CharField(max_length=150, null=True, blank=True) picture = models.CharField(max_length=350, blank=True, null=True) type = models.CharField(blank=False, null=False, max_length=50) email = models.CharField(max_length=50, null=True, blank=True) - token = models.CharField(max_length=50, null=True, blank=True) + matedata = models.CharField(max_length=2000, null=True, blank=True) def __str__(self): return self.nikename diff --git a/oauth/oauthmanager.py b/oauth/oauthmanager.py index 2599e46..cb0b387 100644 --- a/oauth/oauthmanager.py +++ b/oauth/oauthmanager.py @@ -117,6 +117,7 @@ class WBOauthManager(BaseOauthManager): datas = json.loads(rsp) user = OAuthUser() + user.matedata = rsp user.picture = datas['avatar_large'] user.nikename = datas['screen_name'] user.openid = datas['id'] @@ -185,6 +186,7 @@ class GoogleOauthManager(BaseOauthManager): datas = json.loads(rsp) user = OAuthUser() + user.matedata = rsp user.picture = datas['picture'] user.nikename = datas['name'] user.openid = datas['sub'] @@ -255,6 +257,7 @@ class GitHubOauthManager(BaseOauthManager): user.openid = datas['id'] user.type = 'github' user.token = self.access_token + user.matedata = rsp if datas['email']: user.email = datas['email'] @@ -318,6 +321,7 @@ class FaceBookOauthManager(BaseOauthManager): user.openid = datas['id'] user.type = 'facebook' user.token = self.access_token + user.matedata = rsp if datas['email']: user.email = datas['email'] if datas['picture'] and datas['picture']['data'] and datas['picture']['data']['url']: @@ -327,24 +331,6 @@ class FaceBookOauthManager(BaseOauthManager): logger.warn(e) return None - """ - params = { - 'input_token': self.access_token, - 'access_token': self.client_id + '|' + self.client_secret - } - url = 'https://graph.facebook.com/debug_token' # + urllib.parse.urlencode(params) - rsp = self.do_get(url, params) - try: - obj = json.loads(rsp) - userid = str(obj["data"]["user_id"]) - url = 'https://graph.facebook.com/v2.6/' + userid - params = {'access_token': self.access_token} - rsp = self.do_get(url, params) - print(rsp) - except: - pass - """ - def get_oauth_apps(): applications = BaseOauthManager.__subclasses__()