如何在 Google App Engine 中使用 RESTEasy 实现 oAuth 2.0?

5 投票
1 回答
3849 浏览
提问于 2025-04-17 15:40

我正在开发一个Google App Engine的REST服务,想用oAuth 2.0来进行身份验证。我在服务的方法里加了一段代码,用来检查用户是否有效,这段代码能正常工作,当我没有认证时会抛出一个异常。

try 
{
    final OAuthService oauth = OAuthServiceFactory.getOAuthService();
    final User user = oauth.getCurrentUser();
}
catch (final OAuthRequestException e)
{
    throw new RuntimeException(e);
}

现在我想用用Java和Python写的命令行程序来进行身份验证。

我花了好几个小时在Google和StackOverflow上搜索,但找不到一个清晰的例子,说明如何用非浏览器的应用程序来对我的GAE应用进行身份验证。我找到了很多关于如何对Google自己的API进行身份验证的例子,但没有找到关于如何对我自己的Google App Engine应用进行身份验证的内容。

有没有人能提供一些关于如何用Java或Python对Google App Engine应用进行身份验证的指导呢?

1 个回答

3

解决方案

我终于在我的Google App Engine应用上搞定了OAuth 2.0的设置。我把一些示例命令行工具的客户端代码上传到了我的GitHub账号上。这里的代码量太大,没法在代码框里全部发布。当我写完一篇完整的博客,详细讲解我是怎么搞定的以及代码是怎么工作的时,我会更新这个回答。

RESTEasy

在每个服务方法里,使用我问题中发布的代码来获取已经认证的User,如果用户没有通过认证,这个操作会抛出一个异常。

致谢

感谢Fábio Uechi发布的一些代码,这些代码大部分是可以用的,只需要稍微更新一下。我做了不少更新,并且对代码进行了相当大的重构,和他之前的工作相比,改动挺多的。

撰写回答