第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 C 撤銷(xiāo) JWT#

使用 C 撤銷(xiāo) JWT#

PHP
ITMISS 2022-09-04 16:33:41
我有一個(gè)自定義類(lèi),當(dāng)用戶(hù)從服務(wù)器請(qǐng)求數(shù)據(jù)或任何內(nèi)容時(shí),我用它來(lái)使令牌失效Authorize但每當(dāng)令牌過(guò)期時(shí),原則仍然返回為 true,并且仍然調(diào)用控制器并獲取數(shù)據(jù)。IsAuthenticated我希望它做的是使令牌失效并顯式注銷(xiāo)用戶(hù)退出系統(tǒng)。我找不到任何有用的東西。如果需要,我可以提供JWT屬性/過(guò)濾器的代碼更新 1:令牌生成public static string GenerateToken(User user){    int expireMinutes;    try    {        expireMinutes = string.IsNullOrEmpty(ConfigurationManager.AppSettings["SessionTimeInMinutes"])            ? 30            : int.Parse(ConfigurationManager.AppSettings["SessionTimeInMinutes"]);    }    catch (Exception)    {        expireMinutes = 30;    }    var symmetricKey = Convert.FromBase64String(Secret);    var tokenHandler = new JwtSecurityTokenHandler();    var now = DateTime.Now;    var tokenDescriptor = new SecurityTokenDescriptor    {        Subject = new ClaimsIdentity(new[]        {            new Claim(ClaimTypes.Email, user.Email)            ,new Claim(ClaimTypes.Name, user.FirstName + " " + user.LastName)            ,new Claim("uid", user.Id.ToString())            ,new Claim("cid", user.ClientId.ToString())            ,new Claim("rid", string.Join(",", user.Roles.Select(r => r.RoleId).ToList()))        }),        Expires = now.AddMinutes(Convert.ToInt32(expireMinutes)),        IssuedAt = now,        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(symmetricKey), SecurityAlgorithms.HmacSha256Signature)    };    var stoken = tokenHandler.CreateToken(tokenDescriptor);    var token = tokenHandler.WriteToken(stoken);    return token;}
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先:JWT只是客戶(hù)端可以操作的客戶(hù)端令牌。這里沒(méi)有絕對(duì)的安全。JWT 由符號(hào)鍵保護(hù),但不能自行失效。有效令牌在過(guò)期之前一直有效。這是JWT的一個(gè)缺陷(正如@TimBiegeleisen在評(píng)論中指出的那樣),令牌本身不能輕易失效。

如果用戶(hù)工作太久并被自動(dòng)注銷(xiāo),則您的JWT已過(guò)期,并且一切都很好。沒(méi)有麻煩,因?yàn)樗匀缓谋M,你沒(méi)有必要采取行動(dòng)。

要使令牌失效,您需要使用 創(chuàng)建一個(gè)新令牌。這樣,下次您下次檢查JWT時(shí),您看到它已過(guò)期。Expires = now.AddMinutes(-1)

用戶(hù)即使在注銷(xiāo)后也可以保存JWT并使用它的情況只能通過(guò)將JWT列入黑名單或偶爾維護(hù)某種其他類(lèi)型的服務(wù)器端會(huì)話(huà)(這不起作用,即無(wú)狀態(tài)Web服務(wù))來(lái)實(shí)現(xiàn)。

編輯:刪除了錯(cuò)誤信息,并添加了使 JWT 失效(黑名單)的其他方法


查看完整回答
反對(duì) 回復(fù) 2022-09-04
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以簡(jiǎn)單地兌現(xiàn)要撤銷(xiāo)的令牌,然后使您的身份驗(yàn)證部分將已撤銷(xiāo)的請(qǐng)求與現(xiàn)金中的令牌進(jìn)行比較,并基于該請(qǐng)求拒絕該請(qǐng)求

在代幣到期之前,現(xiàn)金應(yīng)該知道代幣的重新開(kāi)采時(shí)間,并兌現(xiàn)那么長(zhǎng)時(shí)間


查看完整回答
反對(duì) 回復(fù) 2022-09-04
  • 2 回答
  • 0 關(guān)注
  • 155 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)