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

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

Web Api OWIN - 如何在每個請求上驗證令牌

Web Api OWIN - 如何在每個請求上驗證令牌

C#
慕絲7291255 2021-10-31 19:12:30
我有兩個應用程序基于 ASP.NET MVC 的客戶端應用程序構建基于 Web API + OWIN 的身份驗證服務器已計劃身份驗證如下對于用戶登錄,客戶端應用程序將使用登錄憑據向身份驗證服務器發出請求。身份驗證服務器將生成一個令牌并將其發送回客戶端應用程序。客戶端應用程序將該令牌存儲在本地存儲中。對于每個后續請求,客戶端應用程序將附加令牌保存在請求標頭中的本地存儲中。現在,在 CLEINT 應用程序的服務器端,我需要驗證每個請求附帶的令牌沒有被調和。請建議我如何在每個請求中驗證令牌,因為我不知道 OWIN 用于生成令牌的密鑰。在客戶端應用程序上編寫代碼來驗證令牌是正確的,還是應該在身份驗證服務器上。我計劃將所有用戶管理代碼(例如注冊用戶、更改密碼)轉移到身份驗證服務器,以便我們可以將其重新用于不同的客戶端應用程序 - 這是正確的設計實踐嗎?到目前為止,我已經編寫了下面的代碼來創建一個 POC。
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

請建議我如何在每個請求中驗證令牌,因為我不知道 OWIN 用于生成令牌的密鑰。


您當前的設置(如果您已將其添加app.UseOAuthBearerAuthentication()到 owin 管道)將從為您傳遞的每個請求中傳遞的不記名令牌對用戶進行身份驗證。然后可以通過 找到當前用戶HttpContext.Current.User。


Authorize然后使用該屬性決定在某些端點上授權哪些用戶。這是一個允許具有“user”角色的用戶訪問的示例


[Authorize(Roles="user")]

public class ValuesController : ApiController

{

}

在客戶端應用程序上編寫代碼來驗證令牌是正確的,還是應該在身份驗證服務器上。


不,您不會在客戶端驗證令牌,如果您的用戶憑據錯誤,您根本不會獲得令牌。這就是你需要知道的全部。 而且,為什么要在客戶端驗證令牌?


我計劃將所有用戶管理代碼(例如注冊用戶、更改密碼)轉移到身份驗證服務器,以便我們可以將其重新用于不同的客戶端應用程序 - 這是正確的設計實踐嗎?


重用令牌提供程序很常見。為什么要為每個應用程序發明輪子?構建一個偉大的,或使用第三方,并在您的應用程序中重用它。


查看完整回答
反對 回復 2021-10-31
  • 3 回答
  • 0 關注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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