亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當使用僅HTTP的會話cookie時,客戶端如何知道會話何時到期?

當使用僅HTTP的會話cookie時,客戶端如何知道會話何時到期?

C#
慕森王 2021-05-21 18:16:43
我的網站是AngularJS SPA,其Web API / SignalR后端在Owin上運行。身份驗證通過存儲在瀏覽器本地存儲中的JSON Web令牌(JWT)進行管理。根據公司指令,我正在從本地存儲中的JWT遷移到具有滑動到期期限的僅HTTP的同一站點會話cookie。一切都很好,除了一個障礙:我的應用程序顯示個人健康信息(PHI),因此會話期滿后,我必須自動關閉該應用程序。使用JWT,我可以檢查“ exp”聲明以自動確定會話已過期,并從屏幕上刪除PHI。但是使用僅HTTP的cookie,我無法訪問令牌的任何部分。當我發布Cookie時,我知道其有效期并可以相應地通知瀏覽器。但是,當Owin刷新cookie時,需要通知瀏覽器新的過期時間,我不確定該怎么做。我可以存儲第二個cookie,該cookie不僅包含HTTP,而且僅包含會話到期時間,但是每當刷新主身份驗證cookie時,我都必須刷新該cookie。我如何告訴瀏覽器會話何時到期,并且當到期時間更改時如何保持瀏覽器更新?Owin刷新cookie時,如何附加事件處理程序?這是我當前的cookie配置:app.UseCookieAuthentication(new CookieAuthenticationOptions(){    AuthenticationMode = AuthenticationMode.Active,    CookieHttpOnly = true,    ExpireTimeSpan = TimeSpan.FromHours(2),    SlidingExpiration = true,    CookieName = "Auth"                });
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

我不是很熟悉Angular或Owin,但是使用受法律保護的教育數據,我們通過滴答秒數,然后在AJAX調用完成后在處理程序中進行重置來解決該問題。


準系統版本看起來像這樣:


var Countdown = {};

var Countdown.length = 3600 /* your session timeout here */;

var Countdown.seconds = Countdown.length;


var Countdown.tick = function() {

    Countdown.seconds--;

    if (Countdown.seconds == 0) {

         /* handle timeout */

    }

    /* any additional processing code here */

}


var Countdown.reset = function() { 

    Countdown.seconds = Countdown.length;

    /* any additional processing code here */

}


window.setInterval(Countdown.tick, 1000);


查看完整回答
反對 回復 2021-05-23
  • 2 回答
  • 0 關注
  • 254 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號