【问题标题】:nodejs twitter api in docker container throw 401 errordocker容器中的nodejs twitter api抛出401错误
【发布时间】:2020-07-18 09:37:17
【问题描述】:

我正在开发 nodejs twitter api,它在本地环境中运行良好,但是当我尝试容器化时,它失败,来自 twitter.js 的 401 错误是“HTTP 401 Unauthorized client error status response code”。

错误

> node app.js

Error: Status Code: 401
    at Request.<anonymous> (/usr/src/app/node_modules/twitter/lib/twitter.js:277:28)
    at Request.emit (events.js:315:20)
    at Request.onRequestResponse (/usr/src/app/node_modules/request/request.js:1059:10)
    at ClientRequest.emit (events.js:315:20)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:603:27)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:117:17)
    at TLSSocket.socketOnData (_http_client.js:472:22)
    at TLSSocket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:297:12)
    at readableAddChunk (_stream_readable.js:273:9)

我对此进行了搜索,发现这可能是 docker 容器中的时间不匹配问题。我的 docker 容器比实际时间晚了 1 个半小时。我不确定这是否是唯一的问题。

我的 docker 文件

FROM node:13.13.0-alpine
    
# Create app directory
WORKDIR /usr/src/app

COPY package*.json ./

# Bundle app source
COPY . .

ENV KAFKA_HOST=localhost:9092 \
    KAFKA_TOPIC=tweetstream 

CMD ["npm", "start"]

如何在这个 docker 镜像中设置正确的时间?

【问题讨论】:

    标签: node.js docker twitter dockerfile


    【解决方案1】:

    OAuth 需要密切的时间同步,所以这很可能是问题所在,尤其是当您的代码在时间同步的系统中的容器之外工作时。

    【讨论】:

      【解决方案2】:

      我在 Windows 主机上,正如我在问题中提到的,我的主机和容器之间存在时间差。

      我做了什么来解决时差问题?

      Search Hyper-V Manager -> Docker Desktop VM (seen on right bottom) -> Settings (new popup will open)
      
      Management -> Integration services -> Time Synchronization (uncheck) -> Apply -> ok
      
      Again go to the same location and check the Time Synchronization -> Apply -> ok  
      

      我也觉得一旦你的 Windows 机器进入休眠状态,你将不得不重做它。

      参考文章:https://thorsten-hans.com/docker-on-windows-fix-time-synchronization-issue

      https://www.ivankrizsan.se/2015/10/31/time-in-docker-containers/

      【讨论】:

        猜你喜欢
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        • 2014-02-26
        • 2011-04-02
        • 2013-06-21
        相关资源
        最近更新 更多