在Google App Engine中使用PHP框架时,当我使用带有login:required
的index.php网址时,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:required
日志详情:
HTTP / 1.1" 302
请求失败,因为URL要求用户登录。对于调用的请求 在App Engine中(离线请求,如任务队列,或像webhooks) XMPP和传入邮件),URL必须要求管理员登录(或否 登录)。
使用no login
nd login:admin
记录详细信息:
HTTP / 1.1" 200
成功
答案 0 :(得分:2)
Crons无法访问受login: required
保护的网址,因为它们不是以用户身份运行的。
来自docs:
注意:虽然cron作业可以使用使用login:admin限制的URL路径,但是它们不能使用受login:restricted限制的URL路径,因为cron计划任务不是以任何用户身份运行的。通过包含下面描述的X-Appengine-Cron标头来满足管理限制。
话虽如此,我建议您为所有受保护的作业使用特定的处理程序。或者您可以重定向未登录的用户。