小编Mar*_*uda的帖子

OIDC - 登录 URL 查询字符串中的额外参数

我有一个 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 …

javascript c# oauth-2.0 openid-connect

7
推荐指数
1
解决办法
6349
查看次数

标签 统计

c# ×1

javascript ×1

oauth-2.0 ×1

openid-connect ×1