在谷歌应用引擎中使用PHP框架时,当我使用带有login:required
的index.PHP url时,Cron作业失败了。我使用login:admin
作为cron。
请参阅我的app.yaml文件
app.yaml
application: my-app
version: 1
runtime: php55
api_version: 1
- url: /.*
script: index.php
login: required
- url: /backup_cron/remindermail
static_dir: backup_cron/remindermail
login: admin
我不想在我的index.php加载中使用no login
和login: admin
。
我的应用程序只能看到所有使用Gmail登录的用户。在没有登录的情况下,cron作业运行良好。
在第一个加载页面中使用login:是否可能?
带login:required
日志详细信息:
HTTP://1.1"302
请求失败,因为URL需要用户登录。对于调用的请求在应用程序引擎中(离线请求,如任务队列,或webhook,如XMPP和Incoming Mail(,URL必须需要管理员登录(或不需要登录(。
带no login
和login:admin
日志详细信息:
HTTP://1.1"200
成功
Crons无法访问受login: required
保护的url,因为它们不是以用户身份运行的。来自文档:
注意:虽然cron作业可以使用login:admin限制的URL路径,但它们不能使用login:required限制的URL通路,因为cron计划任务不是以任何用户身份运行的。通过包含下面描述的X-Appengine-Cron标头,可以满足管理限制。
此处链接:https://cloud.google.com/appengine/docs/python/config/cron?hl=en#Python_app_yaml_Securing_URLs_for_cron
话虽如此,我建议你为所有受保护的工作使用一个特定的处理程序。或者你可以重定向未登录的用户。