【问题标题】:Unauthenticated call to Endpoint working for an API method with authentication对端点的未经身份验证的调用适用于具有身份验证的 API 方法
【发布时间】:2014-03-08 14:42:49
【问题描述】:

我面临端点身份验证问题。

这是我正在使用的 api 代码

@ApiMethod(name = "myapiname.myapimethod", scopes = { Constants.EMAIL_SCOPE }, clientIds = {
        Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID,
        Constants.API_EXPLORER_CLIENT_ID }, audiences = { Constants.ANDROID_AUDIENCE })
public Result myapimethod(User user) throws OAuthRequestException, IOException {

    // some work

    return new Result();
}

在 API explorer 中,它显示该方法需要授权,但即使没有在 API explorer 中授权请求,它也能成功执行。

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: google-app-engine oauth-2.0 endpoints


    【解决方案1】:

    单独添加用户参数不会检查端点请求是否经过身份验证,我们需要检查自己是否参考了文档https://developers.google.com/appengine/docs/java/endpoints/auth#Java_Adding_a_user_parameter_to_methods_for_auth

    `如果传入的客户端请求没有授权令牌或无效令牌,则用户为空。在您的代码中,您需要检查用户是否为 null,并根据条件执行以下操作之一:

    • 如果用户在场,请执行授权操作。

    • 如果用户为 null,则抛出 OAuthRequestException。

    • 或者,如果用户为空,如果需要某种未经授权的访问,则对未经授权的客户端访问执行一些操作。`

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 2013-05-24
      • 2019-09-25
      • 2017-03-25
      • 2018-08-03
      • 2019-06-14
      • 2016-11-30
      • 1970-01-01
      • 2015-10-12
      相关资源
      最近更新 更多