oAuth2 凭据存储为 unicode
oAuth2 credentials being stored as unicode
我正在努力存储 oauth2 凭据,以便以后创建服务。
目前我的模型是这样的:
from django.db import models
from oauth2client.contrib.django_util.models import CredentialsField
from south.modelsinspector import add_introspection_rules
class oAuth(models.Model):
siteid = models.CharField(max_length=100L, primary_key=True)
credential = CredentialsField()
add_introspection_rules([],["^oauth2client\.contrib\.django_util\.models\.CredentialsField"])
当我尝试保存我的凭据时:
credential = flow.step2_exchange(code)
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
storage.put(credential)
在我的数据库中,我存储了一个 unicode 字符串,然后无法使用以下方法将其转换为 oauth 对象:
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
credential = storage.get()
return credential
我得到的凭据是之前存储的 unicode,我无法对其执行 .authorize 方法,这是我需要做的,
我是不是哪里搞糊涂了?
确保您的数据库设置为存储 utf-8
。 Django 需要那个。
https://docs.djangoproject.com/en/1.11/ref/unicode/#creating-the-database
这花了我一段时间才找到(在询问堆栈溢出之前我已经为此苦苦挣扎了一天左右)但是..
返回的 unicode 需要返回到一个 oauth 对象中,我通过实际调用发现 this
解决方法:
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
credential = storage.get()
credential = CredentialsField().to_python(credentials)
return credential
credential
现在可以作为常规 oauth 对象调用
我正在努力存储 oauth2 凭据,以便以后创建服务。
目前我的模型是这样的:
from django.db import models
from oauth2client.contrib.django_util.models import CredentialsField
from south.modelsinspector import add_introspection_rules
class oAuth(models.Model):
siteid = models.CharField(max_length=100L, primary_key=True)
credential = CredentialsField()
add_introspection_rules([],["^oauth2client\.contrib\.django_util\.models\.CredentialsField"])
当我尝试保存我的凭据时:
credential = flow.step2_exchange(code)
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
storage.put(credential)
在我的数据库中,我存储了一个 unicode 字符串,然后无法使用以下方法将其转换为 oauth 对象:
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
credential = storage.get()
return credential
我得到的凭据是之前存储的 unicode,我无法对其执行 .authorize 方法,这是我需要做的,
我是不是哪里搞糊涂了?
确保您的数据库设置为存储 utf-8
。 Django 需要那个。
https://docs.djangoproject.com/en/1.11/ref/unicode/#creating-the-database
这花了我一段时间才找到(在询问堆栈溢出之前我已经为此苦苦挣扎了一天左右)但是..
返回的 unicode 需要返回到一个 oauth 对象中,我通过实际调用发现 this
解决方法:
storage = DjangoORMStorage(oAuth, 'siteid', site_id, 'credential')
credential = storage.get()
credential = CredentialsField().to_python(credentials)
return credential
credential
现在可以作为常规 oauth 对象调用