将 IdentityServer3 与独立的 EXE 一起使用(不使用 'redirect_uri'?)
Using IdentityServer3 with a standalone EXE (without using 'redirect_uri'?)
我有一个我正在开发的网站,它使用 IdentityServer3 进行身份验证,它还有一个 returns 访问令牌来启用对我的 APIs 的访问。一切正常。我现在正在将网站重写为独立的 windows EXE。 EXE 是用 React 和 Electron 编写的,使其成为一个独立的应用程序。我的问题是:我将 'authorize' 端点调用到我的 identityserver3 服务器,但我不知道为 identityserver3 所需的 'redirect_uri' 输入什么?由于我的 EXE 是独立的,所以它没有 uri 地址?
有没有一种方法可以将 IdentityServer3 用作 API,我可以将 'authorize' url 发送到 IdentityServer3,并将其作为 return 访问令牌回应(对 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;
其中 BaseAddress 是您的 IDS 地址。
当然,您必须使用适当的流程(客户端凭据)在 IDS 客户端列表中注册您的客户端,并且范围是可选的,但我想您将需要一个。
然后访问受保护的 API 相当容易:
var client = new HttpClient();
client.SetBearerToken(accessToken);
var result = client.GetStringAsync("https://protectedapiaddress").Result;
编辑:对于JavaScript方法:
我有一个我正在开发的网站,它使用 IdentityServer3 进行身份验证,它还有一个 returns 访问令牌来启用对我的 APIs 的访问。一切正常。我现在正在将网站重写为独立的 windows EXE。 EXE 是用 React 和 Electron 编写的,使其成为一个独立的应用程序。我的问题是:我将 'authorize' 端点调用到我的 identityserver3 服务器,但我不知道为 identityserver3 所需的 'redirect_uri' 输入什么?由于我的 EXE 是独立的,所以它没有 uri 地址?
有没有一种方法可以将 IdentityServer3 用作 API,我可以将 'authorize' url 发送到 IdentityServer3,并将其作为 return 访问令牌回应(对 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;
其中 BaseAddress 是您的 IDS 地址。
当然,您必须使用适当的流程(客户端凭据)在 IDS 客户端列表中注册您的客户端,并且范围是可选的,但我想您将需要一个。
然后访问受保护的 API 相当容易:
var client = new HttpClient();
client.SetBearerToken(accessToken);
var result = client.GetStringAsync("https://protectedapiaddress").Result;
编辑:对于JavaScript方法: