Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Google登录python Google应用程序引擎_Python_Google App Engine_Google Signin_Googlesigninapi_Googlesigninaccount - Fatal编程技术网

Google登录python Google应用程序引擎

Google登录python Google应用程序引擎,python,google-app-engine,google-signin,googlesigninapi,googlesigninaccount,Python,Google App Engine,Google Signin,Googlesigninapi,Googlesigninaccount,我在GoogleAppEngine中使用python创建了一个项目。我想在我的网站上使用谷歌登录 我尝试使用GoogleSign-In for web,效果很好,但我不知道如何从服务器调用API来确保用户已登录 我尝试使用users==>user=users.get\u current\u user() 然后使用用户id进行API调用==> “+self.request.get('id')+”?fields=image&key=SOME\u key” 问题是这个id不是我应该使用的。当我比较这个

我在GoogleAppEngine中使用python创建了一个项目。我想在我的网站上使用谷歌登录

我尝试使用GoogleSign-In for web,效果很好,但我不知道如何从服务器调用API来确保用户已登录

我尝试使用users==>user=users.get\u current\u user() 然后使用用户id进行API调用==> “+self.request.get('id')+”?fields=image&key=SOME\u key”

问题是这个id不是我应该使用的。当我比较这个id和我在javascrip中得到的id时,它们是不一样的。另外,在WebAPI中,他们提到我不应该直接将该id发送到服务器(我不知道原因)。因此,我想知道如何在python应用程序中获得正确的id

//不要直接将其发送到服务器

<html lang="en">
  <head>
    <meta name="google-signin-scope" content="profile email">
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID.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_令牌”);
};

在google API中深入搜索后,我发现他们引入了一种发送id令牌的方法。 更多信息可在此处找到:


在google API中深入搜索后,我发现他们引入了一种发送id令牌的方法。 更多信息可在此处找到:


您不能使用用户id进行API调用。当您根据API对google服务器进行API调用时,您必须传递不同的参数。例如,如果您想列出gmail中可用的标签,您将使用gmail API,并且必须在get请求中传递labelid、userid。下面是上述示例的文档。
您可以使用谷歌提供的这个API框来使用这个API。如本例所示,所有谷歌产品都有不同的API用于不同的功能,您必须根据他们提供的文档传递不同的参数。

您不能使用用户id进行API调用。当您根据API对谷歌服务器进行API调用时,您必须传递不同的参数。对于例如,如果您想列出gmail中可用的标签,您将使用gmail API,并且必须在get请求中传递labelid和userid。下面是上述示例的文档。
您可以使用谷歌提供的这个API框来使用这个API。像这个例子一样,所有的google产品都有不同的API用于不同的功能,你必须根据他们提供的文档传递不同的参数。

后端的文档是否有auth帮助。。。有一个使用Python库解码ID令牌的示例。纯文本ID不安全,可能被伪造,因此您不能将其用于后端身份验证,您需要发送并验证ID令牌并从中提取值。后端身份验证上的文档是否有帮助。。。有一个使用Python库解码ID令牌的示例。明文ID是不安全的,可以伪造,因此您不能将其用于后端身份验证,您需要发送并验证ID令牌并从中提取值。我必须将身份验证令牌传递到后端才能使用我需要的API。我必须将身份验证令牌传递到后端才能使用我需要的API。