Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 处理SPA应用程序的登录:获取用户信息、管理索赔_Asp.net_Asp.net Core_Openiddict - Fatal编程技术网

Asp.net 处理SPA应用程序的登录:获取用户信息、管理索赔

Asp.net 处理SPA应用程序的登录:获取用户信息、管理索赔,asp.net,asp.net-core,openiddict,Asp.net,Asp.net Core,Openiddict,上下文: 我已经在我的应用程序中基于实现了OpenIddict。我当前使用TokenEndpoint登录用户 services.AddOpenIddict<ApplicationUser, UsersDbContext>().EnableTokenEndpoint("/api/Account/Login") 但我在http响应中看到的是: { "sub": "ea2248b4-a[...]70757de60fd", "iss": "http://localhost:5938

上下文:

我已经在我的应用程序中基于实现了OpenIddict。我当前使用TokenEndpoint登录用户

services.AddOpenIddict<ApplicationUser, UsersDbContext>().EnableTokenEndpoint("/api/Account/Login")
但我在http响应中看到的是:

{
  "sub": "ea2248b4-a[...]70757de60fd",
  "iss": "http://localhost:59381/"
}
这将返回一些
索赔
。由于它不返回任何内容,我假设在令牌生成期间没有创建
身份声明

简而言之,我需要知道的是:

  • 使用令牌端点登录用户是否正确
  • 我需要自己生成索赔吗
  • 我可以自己控制索赔吗?如何控制
  • 如何通过UserInfoEndpoint使某些声明可见
  • 使用令牌端点登录用户是否正确

    是的

    我需要自己生成索赔吗

    userinfo端点只是公开存储在访问令牌中的令牌(这在将来可能会改变)

    我可以自己控制索赔吗?如何控制? 如何通过UserInfoEndpoint使某些声明可见

    要允许userinfo端点返回更多声明,您必须请求更多范围。阅读了解更多信息

    在将来的版本中,我们可能允许您返回自定义索赔,但目前不支持

    使用令牌端点登录用户是否正确

    是的

    我需要自己生成索赔吗

    userinfo端点只是公开存储在访问令牌中的令牌(这在将来可能会改变)

    我可以自己控制索赔吗?如何控制? 如何通过UserInfoEndpoint使某些声明可见

    要允许userinfo端点返回更多声明,您必须请求更多范围。阅读了解更多信息


    在将来的版本中,我们可能允许您返回自定义声明,但目前不支持。

    我不清楚如何“请求更多范围”。您链接到的页面上说,范围请求应该是这样的:“scope=openid profile电子邮件电话”。但那是什么?头球?请求主体?我应该如何使用它?你应该在请求正文(用
    application/x-www-form-urlencoded
    编码)中与其他令牌请求参数一起发送它。我这样问是因为,正如你所看到的,没有什么真正改变我所说的令牌请求,而不是userinfo请求。我不清楚如何“请求更多范围”。您链接到的页面上说,范围请求应该是这样的:“scope=openid profile电子邮件电话”。但那是什么?头球?请求主体?我应该如何使用它?您应该在请求正文(用
    application/x-www-form-urlencoded
    编码)中与其他令牌请求参数一起发送它。我这样问是因为,正如您所看到的,没有什么真正改变我所说的令牌请求,而不是userinfo请求。
    {
      "sub": "ea2248b4-a[...]70757de60fd",
      "iss": "http://localhost:59381/"
    }