Django中的Oauth 1.0a

2024-05-18 10:53:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的Django应用程序中对rdioapi进行授权调用。到目前为止,我一直在查看以下教程以进行设置:

http://www.rdio.com/developers/docs/web-service/oauth/ref-oauth1-overview

页面底部的代码对我来说很好:我可以获取请求令牌,使用PIN授权用户,然后使用新的访问令牌进行调用。在

但是,我想实现回调,这样用户就可以登录并返回我的站点,这样我就可以用他们的帐户发出授权请求。我目前有一个页面,其中有一个链接授权应用程序,其中获取链接的功能如下:

def get_auth_url():
    client = oauth.Client(consumer)
    response, content = client.request('http://api.rdio.com/oauth/request_token', 'POST', urllib.urlencode({'oauth_callback': 'http://localhost:8080/my_page/'}))
    parsed_content = dict(cgi.parse_qsl(content))
    request_token = oauth.Token(parsed_content['oauth_token'], parsed_content['oauth_token_secret'])
    sURL = '%s?oauth_token=%s' % (parsed_content['login_url'], parsed_content['oauth_token'])
    return sURL

这是好的,当我点击这个链接,我会进入一个页面,要求授权我的帐户为这个应用程序。但是,我需要从我的用户刚刚授权的请求令牌中获取访问令牌。来自授权页面的回调给了我oauth_verifieroauth_token参数,但是构造请求令牌需要oauth_token和{}。第二个秘密我不应该再打电话到第二个地方。由于这是两个不同的请求,我想不出在哪里存储持久请求令牌。如何在第二个请求中获取oauth_token_secret,以便获得访问令牌?在


Tags: 用户comclienttoken应用程序httpurl链接
1条回答
网友
1楼 · 发布于 2024-05-18 10:53:56

您需要将请求令牌临时存储在服务器上,以便您可以发出访问令牌请求。这条线:

The request token secret must be included in the signature but not over the wire.

指的是秘密用于生成签名,但不包含在请求中。在

为了节省时间和精力,我建议使用Django Social Auth。它已经supports Rdio。在

相关问题 更多 >