gpt4 book ai didi

python - 你如何在 Django 中使用 rauth?

转载 作者:行者123 更新时间:2023-11-28 18:51:10 27 4
gpt4 key购买 nike

OAuth网站提到的python库rauth似乎很简单而且最好用。所以,我想在 Django 中使用它,但无法真正实现它。

这是我的问题。

# I do something like this initially
from rauth.service import OAuth2Service
from django.shortcuts import render_to_response
def page(request):
service = OAuth2Service(
consumer_key = "..",
consumer_secret = "...",
.. )
url = service.get_authorize_url(redirect_uri="http://mysite.com/redired-url")
# this url is where the user accepts or not.
# which redirects with authorization code.
return HttpResponseRedirect(url)

现在,当用户打开页面时,它会直接重定向并要求用户允许或拒绝。如果用户允许,我们将在 redirect-url 获取授权码

从授权 token 获取访问 token ,

rauth lib 提到要这样做,我必须将其放在与 redirect-url 相对应的不同 View 下

data = dict(code='foobar',
grant_type='authorization_code',
redirect_uri='http://example.com/')
token = service.get_access_token('POST', data=data)

问题出在 service 对象上。我在一个 View 中创建了 service 实例,我需要在另一个 View 中使用它来获取访问 token ..

我哪里错了..?如何完成。

最佳答案

好吧,有多种方法可以在网络应用程序的上下文中处理这个问题。我强烈建议您查看 Facebook Flask example在示例目录中。

基本思想是提供授权 View 和重定向 View 。您希望提供程序重定向到重定向 View ,并且您应该在其中执行您希望能够执行的所有操作(假设您已获得用户授权)。否则,您应该放弃并尽可能告知用户原因。

现在我通常做的是将服务包装器保存在单独的模块中,而不是在 View 中,然后将它们导入到我需要它们的上下文中。你可以做一些事情来动态地初始化它们等等。但是请引用我发布的链接以获得简单的实现。我认为这应该做你想做的。我意识到这不是 Django,但成语与这种 View 的简单情况非常接近。

关于python - 你如何在 Django 中使用 rauth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com