Javascript 如何在允许访问我的网站之前验证用户域?

Javascript 如何在允许访问我的网站之前验证用户域?,javascript,php,Javascript,Php,我正在建立一个网站。本网站没有存储员工用户信息的数据库。我们让他们使用谷歌账号登录。如果有人访问我们的网站,但他们没有域名电子邮件地址,他们会被重定向到错误页面。否则,如果他们拥有我们当前托管的6个域之一,他们将被定向到我们的支持页面 我面临的问题是,任何拥有谷歌账户的人都可以访问该网站,而这是不可能发生的 在我们的登录页面上,我们使用google登录javascript,如下所示: login.php <div class="g-signin2" data-onsuccess="onSi

我正在建立一个网站。本网站没有存储员工用户信息的数据库。我们让他们使用谷歌账号登录。如果有人访问我们的网站,但他们没有域名电子邮件地址,他们会被重定向到错误页面。否则,如果他们拥有我们当前托管的6个域之一,他们将被定向到我们的支持页面

我面临的问题是,任何拥有谷歌账户的人都可以访问该网站,而这是不可能发生的

在我们的登录页面上,我们使用google登录javascript,如下所示:

login.php

<div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
    <script type="text/javascript">
      function onSignIn(googleUser) {
                // Useful data for your client-side scripts:
                var profile = googleUser.getBasicProfile();
                console.log("ID: " + profile.getId()); // Don't send this    directly to your server!
                console.log("Email: " + profile.getEmail());

                // The ID token you need to pass to your backend:
                var id_token = googleUser.getAuthResponse().id_token;
                console.log("ID Token: " + id_token);

                if (id_token !=""){
                    window.location = "login_process.php";
                    } 
             };
  </script>
如果您的电子邮件地址不包含所需的域之一,则应将您重定向到error.php页面。否则,它将允许访问我们的支持页面


出于某些我不理解的原因,无论您使用什么google帐户,它仍然允许访问support.php页面。我觉得我在某个地方错过了一步,我看不到它在哪里。如果您有任何帮助,我们将不胜感激。

正如我在评论中所说,请尝试以下方法:

在if语句中反转您的逻辑,仅当它与域匹配时才允许重定向到support.php,而不总是除非不匹配

if ( in_array($auth, $allowed))
{
   // allowed
    header('Location: support.php');
} else {
    // not allowed
    header('Location: error.php')
} 

javascript进行重定向,但不发布任何表单数据,因此
$\u POST
在php中不起作用。您必须使用电子邮件隐藏的输入创建一个隐藏表单,然后使用javascript提交。

您可以向我们展示您的
$allowed
数组吗?请修复
else
语句,您正在编写括号
else(header('Location:support.php'))
抱歉,您在回复时正在编辑。代码和我现在的一模一样。我想你的逻辑是相反的。如果与域匹配,最好重定向到support.php,而不是相反,因为
if
语句中出现的所有错误都会导致重定向到support.php。但是,在javascript中,您正在创建
window.location
,但是您没有发布任何表单数据,因此PHP中的
$\u POST[]
将无法工作
if ( in_array($auth, $allowed))
{
   // allowed
    header('Location: support.php');
} else {
    // not allowed
    header('Location: error.php')
}