我正在尝试使用firebase和websockets(在本机上做反应)在Graphql中实现身份验证。
客户端使用firebase进行身份验证并获取令牌。然后,它通过websocket客户端将令牌发送到服务器,该客户端使用admin sdk验证用户。
我面临两个问题:
当应用程序启动时,它会建立一个ws连接,到那时它没有授权标头。用户使用firebase在一段时间后获得一个令牌。
令牌在一段时间后过期,所以过了一段时间我需要更新websocket连接中的授权头,并重新运行由于令牌过期而被拒绝的查询,变异或订阅。
有没有办法更新授权标头并重新运行查询?
我是否需要使用授权标头中的新令牌关闭之前的连接并打开一个新连接?这是怎么做到的?
我正在使用apollo-server,apollo-client,apollo-link,subscriptions-transport-ws。