Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 2.7 如何在webapp2脚本中创建身份验证令牌?_Python 2.7_Google App Engine_Webapp2 - Fatal编程技术网

Python 2.7 如何在webapp2脚本中创建身份验证令牌?

Python 2.7 如何在webapp2脚本中创建身份验证令牌?,python-2.7,google-app-engine,webapp2,Python 2.7,Google App Engine,Webapp2,我想通过使用脚本使在Google App Engine实例中测试端点变得更容易。基于这些信息,我编写了一个简单的脚本,如下所示: from main import app params = { 'top': 'true', 'sort_by': 'most-recent', } query = urllib.urlencode(params) url = '/activities?' + query request = webapp2.Request.blank(url)

我想通过使用脚本使在Google App Engine实例中测试端点变得更容易。基于这些信息,我编写了一个简单的脚本,如下所示:

from main import app

params = {
    'top': 'true',
    'sort_by': 'most-recent',
}

query = urllib.urlencode(params)
url = '/activities?' + query

request = webapp2.Request.blank(url)
response = request.get_response(app)
ActivitiesHandler.secure = False
但有一个问题:我的处理程序有一个安全检查,以确保只有登录用户才能调用端点。如果cookie
\uuuu auth\uuuu
未正确设置,它将返回401状态代码(
HTTPUnauthorized

HTTPUnauthorized: This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.
下面是相关的webapp2配置

'webapp2_extras.sessions': {
    'cookie_name': '__session__',
    'secret_key': login.secrets.SESSION_KEY,
    'cookie_args': {
        'max_age': 30 * 24 * 60 * 60
    }
},
'webapp2_extras.auth': {
    'cookie_name': '__auth__',
    # Use with 'remember' flag to make persistent cookies
    'token_max_age': 30 * 24 * 60 * 60,
    'user_attributes': []
},
我已经尝试“修补”我的处理程序类以绕过检查

下面是我的处理程序类的
get
函数
ActivitiesHandler
(它扩展了
webapp2.RequestHandler

我的货币补丁代码如下所示:

from main import app

params = {
    'top': 'true',
    'sort_by': 'most-recent',
}

query = urllib.urlencode(params)
url = '/activities?' + query

request = webapp2.Request.blank(url)
response = request.get_response(app)
ActivitiesHandler.secure = False
然而,它不会产生任何效果。我认为这是因为
app
变量是模块范围的一个变量,在我的money补丁代码执行之前,它已经与所有处理程序一起初始化了

作为替代方案,我希望以编程方式为有效的
用户
实体创建一个
\uuuuuuuuuuuuuuuuuuuuuuuuuu
。但我找不到这方面的相关信息


欢迎使用任何指针或示例代码。

您是否正在开发服务器中运行请求处理程序?您总是可以检测环境,在RequestHandler子类的
\uuuu init\uuu()
方法中,您可以检测到您不在生产环境中,并设置标志?否。我想在任何环境下运行它,因为有时请求处理程序的结果可能会因数据存储索引的状态而改变。这就是为什么我想编写一个通用脚本来调用端点以验证结果。谢谢你确定在你的处理人到达之前401还没有返回吗?您可以分享更多的代码吗?您是否在
app.yaml
文件中使用
login:admin
选项?您是否在开发服务器中运行请求处理程序?您总是可以检测环境,在RequestHandler子类的
\uuuu init\uuu()
方法中,您可以检测到您不在生产环境中,并设置标志?否。我想在任何环境下运行它,因为有时请求处理程序的结果可能会因数据存储索引的状态而改变。这就是为什么我想编写一个通用脚本来调用端点以验证结果。谢谢你确定在你的处理人到达之前401还没有返回吗?你能分享更多你的代码吗?你是否在
app.yaml
文件中使用
login:admin
选项?