当 Web 服务无法直接连接到客户端时,它如何访问客户端上的回调?

问题描述 投票:0回答:1

有时需要在访问Web服务时在客户端计算机上设置回调。一个例子是 git-credential-manager,它访问 OAuth 身份提供商(“IdP”,即 Google/GitHub/其他),以授权 git 访问另一台服务器。

为了实现此目的,GCM 会弹出一个浏览器窗口来访问 IdP 登录页面。用户登录后,IdP 会联系客户端上的回调 URL,以告知 GCM 用户是否已获得授权。回调 URL 始终位于本地主机 (http://localhost/whatever

)。

问题:这是怎么做到的? IdP 显然无法直接访问

localhost

。 GCM 是否设置了与浏览器窗口对话的本地服务器?浏览器是否安排回调路由到本地服务器,如何安排?

networking webserver
1个回答
0
投票
我不知道您的具体情况如何,但您基本上永远不能假设远程系统可以启动与用户计算机上运行的某些服务器的连接。

相反,客户端通常只是通过 http 本身或通过 websocket 保持连接处于活动状态,或者只是轮询结果 URL,直到失败或转发到所需的令牌。

© www.soinside.com 2019 - 2024. All rights reserved.