如何在 OAuth 2.0 中获取访问令牌后设置新的会话 ID

How to set new session id after getting access token in OAuth 2.0

我正在为销售人员开发一个应用程序。对于身份验证,我使用的是网络服务器流程。 在 salesforce OAuth 实现中,会话 ID 与访问令牌相同。当我获得新的访问令牌(通过刷新令牌方法)时,将其传递给客户端的正确方法是什么。我应该明确地将会话 ID 设置为新的访问令牌吗?

假设您在请求 OAuth 2.0 访问令牌时包含 webfull scope,那么它可以与会话 ID 互换使用。

您将访问令牌放入 sid cookie 中并重定向到正确的 instance/pod。

更好的是,您可以使用 frontdoor.jsp 设置所需的 cookie。参见 Using frontdoor.jsp to login to Salesforce UI and Communities

客户端可以通过处理对 Salesforce API 的请求的一些逻辑来处理此问题,该请求失败并返回 Unauthorized 响应。当收到 Unauthorized 响应时,客户端可以向您的 Web 服务器请求新的访问令牌/会话 ID。

或者,当 Web 服务器刷新令牌时,您必须使用 WebSockets 或某些推送技术将新的访问令牌推送到客户端。