我有一个 Javascript 客户端,它使用 OIDC 进行身份验证。我正在使用授权码流程。这是一个代码片段:
var config = {
authority: "http://localhost:5000",
client_id: "js",
redirect_uri: "http://localhost:5003/callback.html",
response_type: "code",
scope:"openid profile web_api",
post_logout_redirect_uri: "http://localhost:5003/index.html"
};
var mgr = new Oidc.UserManager(config);
Run Code Online (Sandbox Code Playgroud)
我希望能够在上面的配置对象中添加额外的参数,这些参数可以在我可以在授权服务器的登录方法中访问的 URL 的查询字符串中使用(http://localhost:5000/Account/登录):
(C# 代码):
// <summary>
/// Entry point into the login workflow
/// </summary>
[HttpGet]
public async Task<IActionResult> Login(string returnUrl)
{
...
}
Run Code Online (Sandbox Code Playgroud)
(我可以通过returnUrl参数或HttpContext.Request.Query属性访问上面代码中的 URL 查询字符串)
不幸的是,如果我在 Javascript 客户端上的配置对象中设置新的(非标准)参数,它们不会传递到 URL 查询字符串。
上下文化:我需要此功能的原因是因为除了用户名和密码之外,我还必须使用额外的参数来验证用户身份。然而,这些参数并未由用户明确告知。它们的值在客户端 Javascript 代码内分配(例如:客户端的设备 ID(如手机的 IMEI))。如果还有其他更简单的方法来实现这一目标,我很高兴知道。
根据 GitHub 上的讨论,我可以使用 Postman 来实现此目的:
因为在 Postman …