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 app engine 带有OAuth2的GAE用户API_Google App Engine_Google Api_Google Cloud Endpoints - Fatal编程技术网

Google app engine 带有OAuth2的GAE用户API

Google app engine 带有OAuth2的GAE用户API,google-app-engine,google-api,google-cloud-endpoints,Google App Engine,Google Api,Google Cloud Endpoints,在我的servlet中,这是我对用户进行身份验证的方式 UserService userservice=UserServiceFactory.getUserService(); User user = userservice.getCurrentUser(); if(user == null){ response.redirect(userservice.createLoginURL("../userhome")); } 最近,在同一个项目中,我

在我的servlet中,这是我对用户进行身份验证的方式

    UserService userservice=UserServiceFactory.getUserService();
    User user = userservice.getCurrentUser();

    if(user == null){
       response.redirect(userservice.createLoginURL("../userhome"));
    }
最近,在同一个项目中,我使用带有身份验证的谷歌云端点使用JS客户端访问数据。JS客户端使用Oauth进行授权

gapi.auth.authorize(...);
尽管它们属于同一个appengine项目,并且共享相同的凭据,但servlet和JS客户端要求用户彼此独立登录,就好像它们是两个不同的应用程序一样

我希望整个应用程序只需一次登录。我该怎么做

以下是一些要点:

  • 在这两个级别上进行身份验证非常重要。这是一个很好的实践,在没有任何身份验证机制的情况下,不会让您的功能打开执行

  • 当您在客户端进行身份验证时,整个身份验证层会将此
    用户
    对象传递给您的谷歌云端点代码。因此,如果您可以在云端点方法中插入
    User
    对象来提取用户的信息,并在需要时进行您自己的授权,这是很好的

  • 总之,如果注意到这一点,您实际上并没有在服务器端再次进行身份验证。您只需检查身份验证是否完成,然后继续