Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将google登录集成到我的网站并收集用户详细信息?_Javascript_Php_Html_Google Signin - Fatal编程技术网

Javascript 如何将google登录集成到我的网站并收集用户详细信息?

Javascript 如何将google登录集成到我的网站并收集用户详细信息?,javascript,php,html,google-signin,Javascript,Php,Html,Google Signin,我想将google登录按钮集成到。我知道html,但我不确定php和java脚本。最后,我希望google登录用户并向我提供他们的信息,这样我就可以将其安全地存储在phpmyadmin上的数据库中。我为此访问过,但发现它没有解释如何充分收集用户信息。我已经试着遵循这一点,到目前为止,我已经做到了,但这远远不是它应该是什么样子。我看过其他教程,如。然而,我发现他们都没有遵循谷歌的指示,例如,你必须下载谷歌API在他们,但在谷歌网站上没有提到下载任何东西 以下是使用谷歌教程的代码: <html

我想将google登录按钮集成到。我知道html,但我不确定php和java脚本。最后,我希望google登录用户并向我提供他们的信息,这样我就可以将其安全地存储在phpmyadmin上的数据库中。我为此访问过,但发现它没有解释如何充分收集用户信息。我已经试着遵循这一点,到目前为止,我已经做到了,但这远远不是它应该是什么样子。我看过其他教程,如。然而,我发现他们都没有遵循谷歌的指示,例如,你必须下载谷歌API在他们,但在谷歌网站上没有提到下载任何东西

以下是使用谷歌教程的代码:

<html lang="en">
  <head>
    <meta name="google-signin-scope" content="profile email">
    <meta name="google-signin-client_id" content="808271051181-424qcdq0emrd0pd77frfiuacvcetp58t.apps.googleusercontent.com">
    <script src="https://apis.google.com/js/platform.js" async defer></script>
  </head>
  <body>
    <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
    <script>
      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('Full Name: ' + profile.getName());
        console.log('Given Name: ' + profile.getGivenName());
        console.log('Family Name: ' + profile.getFamilyName());
        console.log("Image URL: " + profile.getImageUrl());
        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);
      };
    </script>
  </body>
</html>

函数onSignIn(谷歌用户){
//客户端脚本的有用数据:
var profile=googleUser.getBasicProfile();
console.log(“ID:+profile.getId());//不要直接将其发送到服务器!
log('Full Name:'+profile.getName());
log('给定名称:'+profile.getGivenName());
console.log('Family Name:'+profile.getFamilyName());
log(“图像URL:+profile.getImageUrl());
log(“Email:+profile.getEmail());
//需要传递到后端的ID令牌:
var id_token=googleUser.getAuthResponse().id_token;
日志(“ID令牌:+ID_令牌”);
};

您可能可以用javascript从概要文件中获取所有数据,但我希望将它们的所有数据都输入php变量,以便存储在数据库中。为此,我将GoogleID令牌作为来自javascript的post数据发送(如何做到这一点)。 您仍然需要所有其他谷歌登录代码,但我用以下代码替换了
onSingIn

function onSignIn(googleUser) {
    var profile = googleUser.getBasicProfile();
    document.getElementById("userid").value = googleUser.getAuthResponse().id_token;
    document.getElementById("userid").form.submit();
}
还要在正文中添加表单代码:

<form action="login.php" method="post">
    <input type="hidden" name="id" id="userid">
</form>
有了这个,你应该能够得到你需要的所有信息。示例使用:

$name = trim(get_var("name"));
$email = trim(get_var("email"));
要查看所有可访问的信息,请在
get\u var
中打印出
$id\u token
,或转到在末尾添加id token。 有关从ID令牌获取数据的详细信息

$name = trim(get_var("name"));
$email = trim(get_var("email"));