Я пытаюсь переопределить CheckIsAdmin
метод присутствует в ApiCallHandler
класс. Поэтому я последовал за this ответами. Но я всегда получаю пустой dict при печати self.request.cookies
.GAE self.request.cookies возвращает пустой dict
В какой-то момент я получаю значения при печати self.request.cookies
, но это не так. Я проверил, что мой сервер работает, и я уже looged в.
remote_api.py
выглядит
import re
import models
from google.appengine.ext.remote_api import handler
from google.appengine.ext import webapp
MY_SECRET_KEY = '[email protected]' # 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 "[email protected]" | appcfg.py upload_data [email protected] --passin --url=http://localhost:8080/remoteapi --num_threads=4 --db_filename=bulkloader.csv
это показывает недопустимый параметр --passin
и он отлично работает, если я поставил return True
в начале CheckIsAdmin
метода. Но ему не хватает безопасности.
Вы знаете сверло, отгоняете его до [mcve] –
@ JoshJ r u там? –
Я не знаю, почему ваши куки пустые, потому что вы не опубликовали пример, который я могу использовать для воссоздания вашей проблемы. Я предполагаю, что у вас что-то не так, но я могу только догадываться, без кода, на который нужно смотреть. –