.net core 3 web api jwt 一直 401


最近在給客戶開發 Azure DevOps Exension, 該擴展中某個功能需要調用使用 .NET Core 3 寫的 Web Api。
在拜讀了 Authenticating requests to your service 之后,我給 Web Api 增加了 JWT 認證。

PS: 我沒有照抄代碼,問題出現了.....問題出現了.....問題出現了.....

Postman 請求該 Web Api, 一直報 401 Unauthorized, 無論我換何種姿勢請求, 都是 401 Unauthorized.
心中哪個老火啊, 上 jwt.io 校驗了一下,是合法通過的,就是不知道為毛 Postman 不通過.
百思不得其解,度娘了一下, 有個標題引起了我的注意——.net core 3 web api jwt 一直 401
進去看了一眼,恍然大悟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

答案竟然是:

app.UseAuthorization(); 之前加上 app.UseAuthentication(); 就可以了。

心中十萬個草泥馬在奔騰,因為這兩個方法簽名的單詞太接近了,而且我英語很爛所以對相似的單詞都是一眼略過,以為是一樣的就沒有照搬添加 app.UseAuthentication();
結果烏龍就發生了...

以下內容轉載自:https://www.iteye.com/blog/lucky16-2020198

認證 (authentication) 和授權 (authorization) 的區別

以前一直分不清 authentication 和 authorization,其實很簡單,舉個例子來說:

你要登機,你需要出示你的身份證和機票,身份證是為了證明你張三確實是你張三,這就是 authentication;
而機票是為了證明你張三確實買了票可以上飛機,這就是 authorization。

在 computer science 領域再舉個例子:

你要登陸論壇,輸入用戶名張三,密碼1234,密碼正確,證明你張三確實是張三,這就是 authentication;
再一check用戶張三是個版主,所以有權限加精刪別人帖,這就是 authorization。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM