我应该在每个页面上放置一个 Google 登录按钮吗?

Should I put a Google sign in button on every page?

我建立了一个非常简单的网站,用户可以使用索引页面上的 Google 登录按钮登录。在验证令牌等之后,创建一个 PHP 会话,在页面之间携带 Google 用户 ID 以识别用户。

我还写了一些代码(打算将它包含在大多数页面中),它将显示 Google 登录按钮,再次验证令牌并退出到 index.php 如果Google 生成的用户 ID 与 PHP 会话携带的用户 ID 不匹配。我不确定这是否有必要,但我认为它可能会稍微提高安全性,以防可能欺骗会话用户 ID。

<div class="g-signin2" data-onsuccess="onSignIn"></div>
<script>
function onSignIn(googleUser) {
  var profile = googleUser.getBasicProfile();
  console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.

  var id_token = googleUser.getAuthResponse().id_token;
  var userid = <? echo $userid; ?>;

  $.get("https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + id_token, function( data ) {       
        if (data.sub != userid)
        {
            window.location = 'index.php'; // If the Google log-in doesn't match $userid, redirects to index
        }
    }, "json" );                                                                

}

</script>

这是必要的,还是我应该只在首页上设置登录按钮,然后再依赖会话用户 ID?

我想如果用户为页面添加书签我可能会遇到问题,但在这种情况下,也许我最好检查一下是否已创建会话,如果没有创建则重定向?

使用 $_SESSION['LoggedIn'] 或类似的东西。

LoggedInCheck.php:

<?php
 session_start();

 if($_SESSION['LoggedIn']==FALSE){
     session_destroy();
     header("Location: /login.php");
     die;
 }

 else{}