【问题标题】:Re-use already authenticated mvc client in javascript在 javascript 中重用已经过身份验证的 mvc 客户端
【发布时间】:2018-10-22 03:14:02
【问题描述】:

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

返回视图的方法受授权属性保护。

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

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

有什么方法可以从已经通过身份验证的 MVC 客户端获取不记名令牌以授权我的 javascript 客户端访问 Web API?

【问题讨论】:

    标签: asp.net-mvc security identityserver4 asp.net-core-webapi bearer-token


    【解决方案1】:

    在 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
    

    【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2015-04-20
    • 2012-04-25
    • 1970-01-01
    • 2015-01-06
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多