在Google Cloud Endpoints migration timetable中,描述了从其他身份验证服务迁移的步骤,写入 https://www.googleapis.com/auth/userinfo.email 范围已弃用并且应该考虑迁移到电子邮件范围(类似地从 userinfo.profile 范围到个人资料范围)。
在Java类常量中为我的 @Api 服务类定义了常量,例如 Client ID ,我改变了
public static final String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
到
public static final String EMAIL_SCOPE = "email";
同样在JavaScript example form google的客户端,我将范围变量更改为
var scopes = 'email';
在Google Developers Console日志中,我遇到以下异常:
com.google.api.server.spi.auth.AppEngineAuthUtils getCurrentUser:
getCurrentUser: AccessToken; Tried and failed to get client id for scope 'com.google.api.server.spi.config.scope.SingleAuthScopeExpression@ed8e89a9'
com.google.appengine.api.oauth.InvalidOAuthParametersException:
at com.google.appengine.api.oauth.OAuthServiceImpl.makeSyncCall(OAuthServiceImpl.java:139)
在我的端点方法
中@ApiMethod(name = "authorize", httpMethod="get")
public AppUser authorize(User user) throws NonAuthorizedException {
...
}
用户用户参数中的引擎插入 null (我当然是授权的)。
即使我将范围更改为个人资料,这也不起作用。它只适用于 localhost ,但我认为,这不是问题。
有人可以问,那你为什么要把它作为 userinfo.email 呢?我正在寻找其他一些范围,因为偶尔会有一些特定的谷歌用户(我不知道他们的具体内容), userinfo.email 也不起作用。 有人能帮帮我吗?感谢。
答案 0 :(得分:0)
您无需更新范围。即使范围已被弃用,也不会被删除。