0

有一个桌面应用程序连接到一个 API 服务器,该 API 服务器已IdentityServer4.Models.ApiResource在身份验证服务器中定义为一个。此外,还有一个 Web 应用程序 (a IdentityServer4.Models.Client),该桌面应用程序愿意在其 Web 视图形式中显示(在Qt中使用QWebEngineView)。

该桌面应用程序中的用户在GrantTypes.ResourceOwnerPasswordAndClientCredentials他/她想要与 API 服务器通信时连接到身份验证服务器(使用 )。从那时起,身份验证令牌通过不记名标头。

所以,我们有这些应用程序:

  • 认证服务器
  • 独立的 Web 应用程序(使用身份验证服务器进行身份验证)
  • API 服务器
  • 桌面应用程序(连接到 API 服务器并愿意显示 Web 服务器本身)

成功连接到 API 服务器后,该桌面应用程序内的 Web 应用程序如何识别用户并且不再询问她的用户和密码?

4

1 回答 1

1

在桌面应用程序中,您必须存储(例如在文件系统中)一个 access_token 和一个 refresh_token 以供将来使用。当用户运行应用程序时,您只需检查 access_token 并且它是有效的您应该使用该令牌而不需要登录/通过请求。在我看来,你的桌面应用程序是如何工作的——网络视图形式,或者显然是原生的,这无关紧要。桌面应用程序应该存储令牌。

于 2018-02-21T08:19:19.113 回答