【问题标题】:Is clearing the token from local storage enough? to create an effect of a session timeout due to inactivity?从本地存储中清除令牌是否足够?由于不活动而产生会话超时的效果?
【发布时间】:2016-10-24 19:37:38
【问题描述】:

我正在构建一个 angularjs/web-api 应用程序。它使用基于 OAuth 令牌的身份验证。我需要根据不活动来实现会话超时。我在客户端使用ng-idle来实现效果。

我的问题是: 1.我从本地存储中清除令牌是否足够(我将令牌存储在这里以保持持久性)?

我观察到上述创建新登录需求的方法。但是,我担心我是否应该处理我的应用程序对应的情况 - web-api?。如果是这样,我该怎么做?

如何在不活动时强制执行或手动使我的 oauth 令牌过期?

TIA。

【问题讨论】:

    标签: angularjs session oauth oauth-2.0 session-timeout


    【解决方案1】:

    Token 解决方案适用于在某些 orig_iat + X 时间到期的令牌...您可以将 timestamp 存储到您的令牌中,并为您的服务器编码只接受valid 令牌。我建议您清除存储在localStorage/sessionStorage 中的令牌,并查看 ng-idle 插件。

    http://ngmodules.org/modules/ng-idle

    您可以在此处设置您的配置并在您的run 函数中处理localStorage/sessionStorage 的清除。

    myApp.config(['KeepaliveProvider', 'IdleProvider', function(KeepaliveProvider, IdleProvider) {
      IdleProvider.idle(5);
      IdleProvider.timeout(5);
      KeepaliveProvider.interval(10);
    }]);
    

    https://github.com/tymondesigns/jwt-auth/wiki/Creating-Tokens

    1. iat 颁发时间 - 颁发令牌的时间(unix 时间戳)
    2. exp Expiry - 令牌到期日期(unix 时间戳)
    3. nbf Not Before - 令牌可以在的最早时间点 已使用(unix 时间戳)

    【讨论】:

    • 您好,让我再重复一遍我的问题。我已经在使用 ng-idle 模块,所以我的客户端超时要求得到了照顾。
    • 对不起。我不小心按了回车键。我现在需要的只是想办法从服务器端“手动过期”令牌。我不确定这是必需的还是可行的等等。但我正在寻找一些见解。如果有办法我该怎么做。?请注意。我已经在清理我存储在本地存储中的令牌。但我的任务是足够了,还是我应该在服务器端也这样做。? TIA。
    • @user6916098:生成的令牌将有一个发布时间和到期时间,除了清除令牌之外,您不需要从前端做任何事情......您的服务器端不会验证您发送的旧令牌将其与到期时间段进行比较...
    • 感谢您的回复。但是,我将保持这个问题开放以听取更多回复。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2016-08-12
    • 2020-11-05
    • 2013-03-13
    • 2021-04-14
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多