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

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

在 Servicestack 請求和響應過濾器屬性中訪問 JWT 令牌中的負載

在 Servicestack 請求和響應過濾器屬性中訪問 JWT 令牌中的負載

C#
侃侃爾雅 2022-12-31 13:14:57
我正在使用基于 Servicestack 的 API 編寫服務和 ERP 軟件。在請求過濾器屬性中,我想通過評估給定服務的 ACL 來檢查當前用戶是否有權使用特定服務。在響應過濾器屬性中,我想過濾服務的結果。背景:我公司的用戶可以訪問所有客戶及其數據。然后我有屬于客戶的用戶,這些用戶可能只能看到他們公司的數據。因此,首先我必須評估用戶是否有權訪問所請求的服務 (CRUD),如果可以,我必須確定用戶可能在 UI 中實際看到哪些結果數據。我已經像這樣填充了我的 JWT:{  "iat": 1556223131,  "exp": 1557432731,  "preferred_username": "sa",  "cwp_pid": "people/97-A",  "cwp_bpid": "geschaeftspartners/481-A",  "cwp_adm": "True",  "cwp_su": "True"}在那些過濾器屬性中,我需要訪問我的聲明 cwp_ 以運行我的響應過濾器,在請求過濾器中,我需要訪問 cwp_pid(用戶 ID)。
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

如果您使用的是ServiceStack 的 JWT Auth ProviderIRequest.GetJwtToken() ,您可以使用擴展方法在請求/響應過濾器中檢索 JWT 令牌,例如:

GlobalRequestFilters.Add((req, res, dto) => {

    string jwt = req.GetJwtToken();


    var jwtProvider = AuthenticateService.GetRequiredJwtAuthProvider();


    IAuthSession session = jwtProvider.ConvertJwtToSession(req, jwt);                

    JsonObject jwtPayload = jwtProvider.GetVerifiedJwtPayload(req, jwt.Split('.'));

});

從那里您可以將 JWT 令牌轉換為用戶會話或提取 JSON 有效負載,JsonObject如上所示的字典中。


查看完整回答
反對 回復 2022-12-31
  • 1 回答
  • 0 關注
  • 92 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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