谷歌应用引擎上的HTTP身份验证


HTTP Authentication on Google App Engine

我希望验证我的谷歌应用引擎(GAE)网站,制作一个"仅限会员"的页面。我希望将Google SQL表中的电子邮件/成员ID与HTTP身份验证弹出框中的数据输入相匹配,但我遇到了困难。以下是我的PHP的概要:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="Please enter your email in the username box and member ID in the password box"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Login credentials required for this Premium Content page.';}
else {
    //Verify that the user has the proper credentials
}

似乎从未设置SERVER['HP_AUTH_USER'],这表明PHP是在CGI模式下运行的。我该如何在谷歌应用引擎上完成这项工作?还有其他地方显示了如何使HTTP身份验证在CGI模式下工作的指导(请参阅此处http://www.besthostratings.com/articles/http-auth-php-cgi.html),但它们都引用了.htaccess文件,我认为GAE没有使用该文件(而是使用了一个.yaml文件)。我可以制作一个身份验证页面,但希望我可以通过不那么脆弱的方式进行身份验证。

是的,您需要编写一个身份验证页面,根据SQL表检查用户名和密码。如果它们匹配,则可以设置SERVER['PHP_AUTH_USER']会话变量。请记住包含一个注销页面,用于重置该变量。