2017-09-25 85 views
0

我们有一个基于客户端服务器的Java产品,我需要将Google OAuth集成到服务器仪表板中,我们的客户端可以登录并允许访问gmail API。之后,服务器将使用REFRESH TOKEN和ACCESS TOKEN通过Java Mail API使用客户端gmail将电子邮件报告发送到某些电子邮件ID。 我们只需要实现登录一次并永远发送邮件,即离线访问(意味着刷新令牌是强制性的)。 我们的产品部署在前提以及基于云(一次只有一个)。因此,在客户端环境中,我们可以将私有IP或公共IP或公共IP映射到DNS。需要Google OAuth 2.0体系结构建议通过Java邮件发送Smtp邮件Api

我知道有两种方式,其中可以做到这一点:

1)服务器端验证

2)客户端身份验证

在这两种情况下,你需要的公共DNS映射重定向URI即在登录后谷歌会重定向用户的网址。但在我们的情况下,我们没有 总是将公共域映射到客户端服务器计算机。此外,我们也不能在redirect uri中提供localhost。

SO

问题我:我应该在的地方REDIRECT_URI

问题II的

使用:我们有很多客户,所以我们应该使用一个应用程序为每个客户或者我们应该在云中部署一个应用程序,其中每个客户仪表板将在登录时重定向,作为响应,我们将获得令牌。

上述问题的任何其他替代方案将不胜感激。

回答

0

好吧,我得到了建筑。 谷歌应用程序可以灵活地添加多个Java脚本来源并重定向uri。 所以我们只需要在开发者控制台中创建一个应用程序。对于每个客户端,我们都会在网上添加一个授权的Java脚本来源并重定向uri。当登录按钮将被按下在客户端的服务器,我们将重定向uri accoring到已经添加到谷歌应用程序的客户端。对于私有IP没有解决方案,但localhost可以与限制使用从服务器系统上的浏览器登录。