gpt4 book ai didi

python - GAE self.request.cookies 返回一个空字典

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:59 26 4
gpt4 key购买 nike

我正在尝试覆盖 ApiCallHandler 类中的 CheckIsAdmin 方法。所以我关注了this回答。但是我总是在打印 self.request.cookies 时得到空字典。

在某些时候,我得到了打印 self.request.cookies 的值,但它不会。我已检查我的服务器是否正在运行并且我已经登录。

remote_api.py 看起来像

import re
import models
from google.appengine.ext.remote_api import handler
from google.appengine.ext import webapp

MY_SECRET_KEY = 'foo@bar.com' # make one up, use the same one in the shell command


class ApiCallHandler(handler.ApiCallHandler):

def CheckIsAdmin(self):
'''
Determine if admin access should be granted based on the
auth cookie passed with the request.
'''

'''
print 'App id ' + models.APPLICATION_ID
print 'on checkIsAdmin'
print 'request.cookies ' + str(self.request.cookies)
login_cookie = self.request.cookies.get('dev_appserver_login', '')
match = login_cookie.split(':')
print 'headers '+ str(self.request.headers)
if match and match[0] == MY_SECRET_KEY \
and 'X-Appcfg-Api-Version' in self.request.headers:
print 'Going to return true'
return True

app = webapp.WSGIApplication([('.*', ApiCallHandler)])

app.yaml 的一部分看起来像

- url: /remoteapi.*
script: api.remote_api.app

这是正确的,我的 .py 文件存在于 api 文件夹中..

当我尝试过这个命令时,

echo "foo@bar.com" | appcfg.py upload_data --email=some@example.org --passin --url=http://localhost:8080/remoteapi --num_threads=4  --db_filename=bulkloader.csv

它显示无效参数 --passin,如果我将 return True 放在 CheckIsAdmin 方法的开头,它会完美运行。但它缺乏安全性..

最佳答案

看起来他们删除了 --passin,现在完全依赖 oauth。

https://code.google.com/p/googleappengine/wiki/SdkReleaseNotes#Version_1.9.24_-_July_20,_2015

--passin 是导致设置 cookie 的标志。看起来您需要降级到低于 1.9.24 的 sdk 版本或更改命令以使用 oauth 并删除自定义 ApiCallHandler 代码。

关于python - GAE self.request.cookies 返回一个空字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34738222/

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