Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在每个用于社交身份验证的请求之前,为python社交身份验证设置动态密钥/密码_Python_Django_Facebook Oauth_Python Social Auth_Django Socialauth - Fatal编程技术网

在每个用于社交身份验证的请求之前,为python社交身份验证设置动态密钥/密码

在每个用于社交身份验证的请求之前,为python社交身份验证设置动态密钥/密码,python,django,facebook-oauth,python-social-auth,django-socialauth,Python,Django,Facebook Oauth,Python Social Auth,Django Socialauth,我在django内部使用: 社交身份验证应用程序django和python社交身份验证[django]。 在settings.py中,我声明了以下变量: SOCIAL_AUTH_FACEBOOK_KEY = '' SOCIAL_AUTH_FACEBOOK_SECRET = '' SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {'fields': 'name, email'}

我在django内部使用:
社交身份验证应用程序django
python社交身份验证[django]
。 在
settings.py
中,我声明了以下变量:

SOCIAL_AUTH_FACEBOOK_KEY = ''
SOCIAL_AUTH_FACEBOOK_SECRET = ''
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {'fields': 'name, email'}
一切正常。但是我想在中间件或装饰器中,在每次请求社交身份验证之前,设置
社交身份验证\u FACEBOOK\u密钥
社交身份验证\u FACEBOOK\u秘密
动态。我之所以要这样做,是因为我的django应用程序为多个站点提供数据,每个站点都有自己的密钥和自己的域


我找不到覆盖设置中变量的方法,也找不到将密钥发送到social_auth的方法。

要实现此目的,您有两个选项:

  • 定义您自己的策略,根据需要覆盖并返回动态值(当前的
    请求
    可在
    self.request
    上找到)

    然后用
    社会认证策略
    设置指向它

  • 扩展
    Facebook
    后端和覆盖,并返回自定义值。当前请求位于
    self.strategy.request

    然后在
    AUTHENTICATION\u BACKENDS
    设置中指向它(删除内置的int设置)

  • 编辑:排版