首页 文章

在javascript中重用已经过身份验证的mvc客户端

提问于
浏览
0

我有一个.Net核心的MVC客户端,它使用identityserver 4 .

返回视图的方法受authorize属性保护 .

但是如何使用MVC客户端具有相同的身份验证数据来调用Web API(这是在不同URL上运行的独立项目)?

或者我是否必须使用oidc javascript客户端再次进行身份验证?

有没有什么办法可以从已经过身份验证的MVC客户端获取持有者令牌来授权我的javascript客户端访问Web API?

1 回答

  • 3

    在MVC控制器操作中获取访问令牌,并将其传递给ViewBag中的操作视图或任何内容,甚至直接在剃刀视图中获取 .

    这是一个例子:https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Clients/src/MvcHybrid

    注意Startup类,HomeController和this view .

    启动:

    services.AddAuthentication(options => {...})
            .AddOpenIdConnect("oidc", options => {
                ...
                options.SaveTokens = true;
                ...
            }
    

    控制器/视图:

    var token = await HttpContext.GetTokenAsync("access_token");
    // use token
    

相关问题