【发布时间】:2018-04-10 01:39:18
【问题描述】:
我正在尝试使用 firebase 和 websockets 在 Graphql 中实现身份验证(在 react native 上)。
客户端使用 firebase 进行身份验证并获取令牌。然后它通过 websocket 客户端将令牌发送到服务器,该客户端使用 admin sdk 验证用户。
我面临两个问题:
当应用程序启动时,它会建立一个 ws 连接,到那时它还没有授权标头。用户在使用 firebase 一段时间后获得令牌。
令牌会在一段时间后过期,所以过一段时间我需要更新 websocket 连接中的授权标头,并重新运行因令牌过期而被拒绝的查询、变异或订阅。
有没有办法更新授权标头并重新运行查询?
我是否需要关闭之前的连接并使用授权标头中的新令牌打开一个新连接?这是怎么做到的?
我正在使用 apollo-server、apollo-client、apollo-link、subscriptions-transport-ws。
【问题讨论】:
-
你找到办法了吗?我也有同样的问题。
-
您可以查看以下 2 个未解决的问题:[link] (github.com/apollographql/subscriptions-transport-ws/issues/171) [link] (github.com/apollographql/subscriptions-transport-ws/issues/293) 目前只有这些解决方案。您基本上需要重新启动连接才能传递新令牌@JavascriptHuppTechnologies
-
感谢您的帮助@perrosnk
-
@JavascriptHuppTechnologies 你也在为安卓开发吗?
-
不,我正在 reactjs 框架上开发它,我遇到了令牌问题,因为 apollo 在身份验证之前连接到链接,但现在已修复。
标签: websocket graphql apollo apollo-server