gpt4 book ai didi

.net - 如何通过传递用户名和密码从身份服务器获取访问 token ?

转载 作者:行者123 更新时间:2023-12-01 03:20:48 25 4
gpt4 key购买 nike

我们正在使用身份服务器为我们的 Web 服务生成访问 token 。我们还添加了招摇。
但是我们面临的问题是,通过使用 API 自动化的代码片段来生成访问 token 。
是否有使用用户名和密码自动获取访问 token 的方法?

谢谢你。

最佳答案

我解决这个问题的方法是添加一个客户端凭据客户端,如果有配置的测试客户端 secret ,我只在测试环境中配置这个 secret ,但显然不在更高的环境中,这意味着客户端永远不会被添加到那里。

因此,无论是在您的 appsettings.{property_environment}.settings 还是通过环境变量设置客户端 key ,然后在您的 IdentityServer 配置中,您都可以添加:

//attempt to get the test client secret
var testClientSecret = configuration["TestClientSecret"];
if (!String.IsNullOrWhiteSpace(testClientSecret))
{
clients.Add(new Client
{
ClientId = "MyTestClient",

AllowedGrantTypes = GrantTypes.ClientCredentials,

ClientSecrets =
{
new Secret(testClientSecret.Sha256())
},

AllowedScopes = { "MyApiScope", "MyOtherApiScope", "etc." }
});
};

然后我有一个 Postman 测试集合,它首先发布到:
https://{{idp_base_url}}/connect/token

使用带有测试客户端名称和密码的用户名的基本身份验证作为客户端 secret (其中 {{idp_base_url}} 是包含适用于环境的 IdentityServer 主机的 postman 环境变量)。

然后我运行了一些测试,但也将访问 token 存储到 API:
//tests...
var tokenData = JSON.parse(responseBody);
//more tests...
postman.setEnvironmentVariable("cc_token", tokenData.access_token);

然后,集合中的后续测试可以使用此 token 和使用上述 Postman 环境变量的不记名 token auth header 运行您的 API 测试:

Postman bearer token

关于.net - 如何通过传递用户名和密码从身份服务器获取访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com