将IdentityServer3与独立的EXE一起使用(不使用'redirect_uri'?)

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

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

有没有办法使用IdentityServer3作为API,我可以将'authorize'url发送到IdentityServer3,并让它返回访问令牌作为响应(对API调用?)

javascript reactjs electron exe identityserver3
1个回答
1
投票

您可以像Kirk Larkin所说的那样 - 使用Client Credentials流程。

以下代码在.NET中:

 var client = new TokenClient(
            BaseAddress + "/connect/token",
            "clientId",
            "clientSecret");

var result = client.RequestClientCredentialsAsync(scope: "my.api").Result;

var accessToken = result.AccessToken;

其中BaseAddress是您的IDS地址。

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

然后访问受保护的API非常简单:

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

编辑:对于JavaScript方法:

Thisthis看起来像一个有效的解决方案,但我没有尝试过

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