将 IdentityServer3 与独立 EXE 一起使用(不使用"redirect_uri"?



我正在开发一个使用 IdentityServer3 进行身份验证的网站,它还返回一个访问令牌以启用对我的 API 的访问。 一切正常。 我现在正在将网站重写为独立的 Windows EXE。 EXE是用React和Electron编写的,使其成为一个独立的应用程序。 我的问题是:我调用了我的 identityserver3 服务器的"授权"端点,但我不知道要为身份服务器 3 所需的"redirect_uri"输入什么? 由于我的 EXE 是独立的,它没有 uri 地址?

有没有办法将 IdentityServer3 用作 API,我可以在其中将"授权"网址发送到 IdentityServer3,并让它返回访问令牌作为响应(对 API 调用?

您可以按照 Kirk Larkin 所说 - 使用客户端凭据流。

以下代码位于 .NET 中:

 var client = new TokenClient(
            BaseAddress + "/connect/token",
            "clientId",
            "clientSecret");
var result = client.RequestClientCredentialsAsync(scope: "my.api").Result;
var accessToken = result.AccessToken;

其中基址是您的 IDS 地址。

当然,您必须使用适当的流程(客户端凭据(在IDS客户端列表中注册客户端,并且范围只是可选的,但我想您将需要一个。

然后访问受保护的 API 相当容易:

var client = new HttpClient();
client.SetBearerToken(accessToken);
var result = client.GetStringAsync("https://protectedapiaddress").Result;

编辑:对于JavaScript方法:

这个

和这个看起来像一个可行的解决方案,但我都没有尝试过

最新更新