使用应用引擎OAuth服务

2 投票
1 回答
512 浏览
提问于 2025-04-17 09:27

我正在尝试用OAuth对我的Python命令行脚本进行身份验证,以便与我的应用引擎应用程序配合使用。

我在按照这些说明进行操作,但我还是不太明白整体是怎么运作的。

这个API是“可以直接使用”的状态吗?还是我需要为OAuth过程实现请求处理程序?

到目前为止,我已经部署了我的应用,并且正在使用这个oauth库,我正在尝试这个示例,使用以下值:

SERVER = 'myapp.appspot.com'
PORT = 443 # Also tried 80

REQUEST_TOKEN_URL = '/_ah/OAuthGetRequestToken'
ACCESS_TOKEN_URL = '/_ah/OAuthGetAccessToken'
AUTHORIZATION_URL = '/_ah/OAuthAuthorizeToken'
CALLBACK_URL = 'oob'
RESOURCE_URL = 'http://myapp.appspot.com/'

CONSUMER_KEY = 'myapp.appspot.com'
CONSUMER_SECRET = 'AaB8BtzxM7Dr7wz9Dxc5y6gG'

我需要在服务器端实现任何请求处理程序吗?我需要在某个地方启用这个API吗?

谢谢你的任何澄清。

编辑:这是客户端脚本运行的输出:

$ python test.py ** OAuth Python Library Example **

* Obtain a request token ...

REQUEST (via headers)
parameters: {'oauth_nonce': '64747931', 'oauth_timestamp': 1325595310, 'oauth_consumer_key': 'myapp.appspot.com', 'oauth_signature_method': 'HMAC-SHA1', 'oauth_version': '1.0', 'oauth_signature': 'rBMJdn8+n0yXei38tDMfHjYKxyM=', 'oauth_callback': 'oob'}

我得到的响应是:

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>400 Bad Request</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Bad Request</h1>
<h2>Your client has issued a malformed or illegal request.</h2>
<h2></h2>
</body></html>

1 个回答

1

你不需要自己去实现处理程序,框架会为你完成这些工作。你只需要使用 oauth.get_current_user() 这个函数,服务器会自动为你处理好一切。

另外,你也不应该把密钥放在客户端(我甚至不知道GAE是否会给你访问密钥的权限)。

撰写回答