【问题标题】:How to communicate between servers (Google Cloud Engine -> Google App Engine) using oAuth2如何使用 oAuth2 在服务器(Google Cloud Engine -> Google App Engine)之间进行通信
【发布时间】:2014-10-10 19:50:03
【问题描述】:

首先我想描述一下我们的系统是什么样子的。我们有两台服务器。

第一个在 Google App Engine 上,有一些逻辑可以为 Android 应用程序提供对数据库的访问,还有一些为外部通信编写的 servlet(稍后会详细介绍)。

第二个是在 Google Cloud Engine 上。应用程序是用 Meteor 编写的(为了简化,它只是 Node.js)。我们希望在这些服务器之间进行通信(GCE -> GAE)。我们在地址下的这个 servlet 端点上有休息 API,例如https://appname.appspot.com/admin/upload。当我在没有身份验证的情况下发出请求时,一切正常:

HTTP.get(getURL, {}, getCallback);

但是,我不知道如何使用 oAuth2 身份验证。当我从浏览器转到地址 https://appname.appspot.com/admin/upload 时,它会将我重定向到 Google 身份验证并且一切正常(我在 Google 控制台中添加了我的帐户)。但是如何使用 oAuth2 身份验证从 Node.js 服务器发送 http 请求?

为了给你更多细节,这里是 servlet 配置:

<security-constraint>
    <display-name>SecurityConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>WRCollection</web-resource-name>
        <url-pattern>/admin/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<servlet-mapping>
    <servlet-name>UploadRequestServlet</servlet-name>
    <url-pattern>/admin/upload</url-pattern>
</servlet-mapping>

我知道我必须设置服务器到服务器的通信,但是如何使用 Node.js 来实现呢?有人可以帮忙吗?我不知道从哪里开始...

【问题讨论】:

    标签: javascript node.js google-app-engine servlets oauth-2.0


    【解决方案1】:

    如果有人在使用 OAuth 2.0 结帐库进行服务器到服务器通信(Meteor.js 服务器到 Google 服务器)时遇到问题,我创建了 https://github.com/jagi/meteor-google-oauth-jwt。它使从 Meteor.js 服务器调用 Google REST API 变得更加简单。

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 2019-01-17
      • 2015-01-16
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2012-09-29
      • 1970-01-01
      相关资源
      最近更新 更多