【问题标题】:IdentityServer 3 refresh tokens silentlyIdentityServer 3 静默刷新令牌
【发布时间】:2016-10-07 01:32:40
【问题描述】:

我正在使用 Identity Server 3 在 MVC 应用程序中对用户进行身份验证/授权。

MVC 应用程序使用 IAppBuilder 中的 UseOpenIdConnectAuthentication 方法。

我的 MVC 应用程序只有一个创建 Angular 应用程序的 MVC 控制器。

现在,当我进行 ajax 调用并收到令牌已过期的响应时,我会显示一个带有重新加载按钮的弹出窗口,该按钮将该用户重定向到来自 HomeController 的操作,该操作通过 IS3 重新授权用户重定向。

我的问题 - 有没有一种方法可以静默执行此操作而无需使用弹出窗口并进行重定向?

也许页面中有一个 iFrame 定期向该操作发出请求并保存新令牌?

或者类似的东西?

这在也使用服务器端进行身份验证的 Angular 应用程序中是否可行?

谢谢你

【问题讨论】:

    标签: angularjs asp.net-mvc identityserver3


    【解决方案1】:

    如果您想在服务器端更新访问令牌(授权码流/混合流),您可以使用 OIDC refresh tokens

    我相信您正在寻找客户端库(SPA 客户端 - 隐式流)来刷新访问令牌。是的。这可以通过 iframe 实现。查看oidc-client JS 库(查找 signinSilent / automaticSilentRenew),它通过 iframe 更新访问令牌

    【讨论】:

    • 谢谢。我已经在服务器端使用刷新令牌。我的问题是我是否仍然可以使用刷新令牌,但不必将客户端重定向到身份服务器。在我的情况下,我可以将 oidc-client 库与混合流一起用于刷新令牌吗?
    • @Mihai 当您看到令牌过期消息/401 响应时,拦截请求并向后端 MVC 服务器发出请求以获取新令牌。由于 Angular 应用 (SPA) 不是 OP 的客户端,因此您无法从 SPA 请求刷新令牌。您的 SPA 和 MVC 客户端都是 OP 吗?
    • 操作?恐怕我不知道那是什么。我的 SPA 是通过 MVC 授权的。将来可能应该改变它并通过Javascript进行授权。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2015-10-18
    • 2017-10-25
    • 2019-06-11
    相关资源
    最近更新 更多