代码之家  ›  专栏  ›  技术社区  ›  Anonymous Creator

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

  •  0
  • Anonymous Creator  · 技术社区  · 6 年前

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

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

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

    还是必须使用oidc javascript客户端再次进行身份验证?

    是否有任何方法可以从已经通过身份验证的MVC客户端获取承载令牌,以授权我的javascript客户端访问web API?

    1 回复  |  直到 6 年前
        1
  •  3
  •   SaÅ¡a Ćetković    6 年前

    在MVC控制器操作中获取您的访问令牌,并将其传递到ViewBag或任何东西中的操作视图,甚至直接在razor视图中获取它。

    以下是一个示例: 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