我遇到了端点身份验证问题。
这是我正在使用的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资源管理器中,它显示该方法需要授权,但即使未在API资源管理器中授权请求,它也会成功执行。
任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:0)
单独添加User参数不会检查端点请求是否经过身份验证,我们需要检查自己是否参考了文档https://developers.google.com/appengine/docs/java/endpoints/auth#Java_Adding_a_user_parameter_to_methods_for_auth
`如果传入的客户端请求没有授权令牌或无效令牌,则用户为空。在您的代码中,您需要检查用户是否为null并执行以下操作之一,具体取决于条件:
如果用户在场,请执行授权操作。
如果用户为null,则抛出OAuthRequestException。
或者,如果用户为空,如果需要某种未经授权的访问,请对未经授权的客户端访问执行某些操作。