首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rauth和Django正确创建OAuth2Service

使用Rauth和Django正确创建OAuth2Service
EN

Stack Overflow用户
提问于 2013-08-01 02:01:15
回答 1查看 814关注 0票数 2

我使用rauth对条带连接进行身份验证。为此,我需要实例化一个在多个视图中使用的OAuth2Service。现在,我的视图文件看起来很像这样(并且工作正常),但这感觉是错误的:

代码语言:javascript
复制
from rauth.service import Oauth2Service

service = OAuth2Service(
    name = 'stripe',
    client_id = 'my_client_id',
    client_secret = 'my_secret',
    authorize_url = 'auth_url',
    access_token_url = 'stripe_access_token_url',
    base_url = 'stripe_api_url',
)

def stripe_auth(request):
    params = {'response_type': 'code'}
    url = service.get_authorize_url(**params)
    return HttpResponseRedirect(url)

def stripe_callback(request):
    code = request.GET['code']
    data = {
        'grant_type': 'authorization_code',
        'code': code
    }
    resp = service.get_raw_access_token(method='POST', data=data)
    ... rest of view code ...

我的问题是,我觉得将"service“变量放在视图之外是错误的,但我不确定我应该如何处理这个问题。我是不是应该把它拆分成一个单独的模块,放在设置文件中,创建一个装饰器?我不是很确定。

任何建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-04-17 00:28:27

我通常将其作为属性添加到Flask Application对象中,如下所示:

代码语言:javascript
复制
app = Flask(....)
app.stripe = OAuth2Service(
    name = 'stripe',
    client_id = 'my_client_id',
    client_secret = 'my_secret',
    authorize_url = 'auth_url',
    access_token_url = 'stripe_access_token_url',
    base_url = 'stripe_api_url',
)

这使得它很容易访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17977607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档