【问题标题】:Restrict access to my App Engine PHP app for set of Google accounts?限制一组 Google 帐户访问我的 App Engine PHP 应用程序?
【发布时间】:2016-06-21 22:21:40
【问题描述】:

有没有一种方法可以限制我的 App Engine PHP 应用程序的访问权限仅限于特定的 Google 帐户持有者(当然他们当时已登录)?额外的要求是我网站上的 PHP 脚本将通过 AJAX 调用。用户可以不看到 Google 登录提示,因为他们是内部用户并且知道他们应该已经登录。

查看 PHP app.yaml https://cloud.google.com/appengine/docs/php/config/appref#handlers_login 和用户身份验证信息 https://cloud.google.com/appengine/docs/php/users/#choosing_an_authentication_option 我不清楚这是如何实现的(除了对这些用户过于宽松的管理员角色)

谢谢, 亚历克斯

【问题讨论】:

    标签: php google-app-engine


    【解决方案1】:

    一个非常粗略/简单的解决方案将像这样实现:

    在 app.yaml 中,添加类似这样的内容

    - url: .*
      script: main.php
      login: required
    

    然后在main.php中,像这样

    $user = \google\appengine\api\users\UserService::getCurrentUser();
    if($user) {
        if(in_array($user->getEmail(), ['user1@domain.com', 'user2@domain.com'])) {
            // OK, user is allowed
        } else {
            // Logged in, but UNKNOWN user
        }
    } else {
        // User not logged in
    }
    

    【讨论】:

      【解决方案2】:

      您可以在身份验证时轻松使用 oauth 获取用户电子邮件地址,并使用它来允许一组电子邮件符合条件并为其他人提高 oauhexception

      【讨论】:

      • 谢谢。你的意思是按照下面汤姆的例子,还是其他方式?
      • tom 正在使用 appengine 内置的方式来保护带有表单日志记录机制的 url,它不是 oauth,但我想它也可以正常工作。 Oauth 适用于 google 帐户,操作起来有点麻烦,但确实是您的选择。
      猜你喜欢
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      相关资源
      最近更新 更多