在 javascript 中重新使用已经过身份验证的 mvc 客户端
Re-use already authenticated mvc client in javascript
我有一个使用 identityserver 4 的 .Net core MVC 客户端。
returns 视图受授权属性保护的方法。
但是如何调用 Web API(它是不同 URL 上的单独项目 运行)使用 MVC 客户端具有的相同身份验证数据?
或者我是否必须使用 oidc javascript 客户端再次进行身份验证?
有什么方法可以让我从已经通过身份验证的 MVC 客户端获取承载令牌以授权我的 javascript 客户端访问网络 API?
在 MVC 控制器操作中获取您的访问令牌,并将其传递到 ViewBag 或任何其他操作中的操作视图,甚至直接在 razor 视图中获取它。
这里有一个例子:https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Clients/src/MvcHybrid
注意 Startup class、HomeController 和 this view。
启动:
services.AddAuthentication(options => {...})
.AddOpenIdConnect("oidc", options => {
...
options.SaveTokens = true;
...
}
Controller/view:
var token = await HttpContext.GetTokenAsync("access_token");
// use token
我有一个使用 identityserver 4 的 .Net core MVC 客户端。
returns 视图受授权属性保护的方法。
但是如何调用 Web API(它是不同 URL 上的单独项目 运行)使用 MVC 客户端具有的相同身份验证数据?
或者我是否必须使用 oidc javascript 客户端再次进行身份验证?
有什么方法可以让我从已经通过身份验证的 MVC 客户端获取承载令牌以授权我的 javascript 客户端访问网络 API?
在 MVC 控制器操作中获取您的访问令牌,并将其传递到 ViewBag 或任何其他操作中的操作视图,甚至直接在 razor 视图中获取它。
这里有一个例子:https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Clients/src/MvcHybrid
注意 Startup class、HomeController 和 this view。
启动:
services.AddAuthentication(options => {...})
.AddOpenIdConnect("oidc", options => {
...
options.SaveTokens = true;
...
}
Controller/view:
var token = await HttpContext.GetTokenAsync("access_token");
// use token