带有OAuth2的GAE用户API



在我的servlet中,我是这样验证用户

    UserService userservice=UserServiceFactory.getUserService();
    User user = userservice.getCurrentUser();
    if(user == null){
       response.redirect(userservice.createLoginURL("../userhome"));
    }

最近,在同一个项目中,我使用带有身份验证的Google Cloud Endpoints使用JS客户端访问数据。JS客户端使用Oauth进行授权

gapi.auth.authorize(...);

虽然它们属于同一个应用引擎项目,并且共享相同的凭据,但是servlet和JS客户端要求用户彼此独立地登录——就好像它们是两个不同的应用程序一样。

我想在整个应用程序中使用一次登录。我该怎么做呢?

以下是一些要点:

  1. 在两个级别上都进行身份验证是很重要的。这是一个很好的实践,并且在没有任何身份验证机制的情况下不会使您的功能开放。

  2. 当您在客户端进行身份验证时,整个身份验证层将此User对象传递给您的Google Cloud Endpoints代码。因此,如果您可以在Cloud Endpoints方法中注入User对象以提取用户信息并在需要时进行自己的授权,那将是很好的。

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

最新更新