日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi

發布時間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目:asp.net zero 4.2.0 .net core(1.1) 版本

我們做項目的時候可能會遇到需要提供api給app調用,ABP動態生成的WebApi提供了方便的基于JWT標準的Token訪問方式供我們訪問API,不用在代碼上做任何改動,很方便有木有!

一.什么是JWT

Json web token (JWT), 是為了在網絡應用環境間傳遞聲明而執行的一種基于JSON的開放標準((RFC 7519).該token被設計為緊湊且安全的,特別適用于分布式站點的單點登錄(SSO)場景。JWT的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便于從資源服務器獲取資源,也可以增加一些額外的其它業務邏輯所必須的聲明信息,該token也可直接被用于認證,也可被加密。

?

這里就不詳細介紹JWT了,JWT的詳細介紹可以查看這篇文章,寫得非常詳細:?JWT【JSON Web Token】 簡述,

八幅漫畫理解使用JSON Web Token設計單點登錄系統

?

二.ABP的WebApi訪問控制

asp.net zero core是通過IdentityServer4來實現的認證、授權,關于IdentityServer4介紹可以查看我前面的博文?ASP.NET Core身份認證服務框架IdentityServer4-整體介紹

?

下面我簡單畫了一張圖來表示流程,其中API訪問認證就是有IdentityServer4來實現的,主要有兩種認證方式,一種是通過Cookie主要用于通過瀏覽器訪問,一種是通過Token訪問,主要用于APP、或者其他服務訪問。

三.申請Token

?

http://localhost:4999 項目地址

?

ABP已經為我們實現好了Token獲取和驗證。

?

需要注意的是配置ServerRootAddress,如下圖

?

?

?

1.首先運行webapi項目(asp.net zero core項目說明)

?

訪問地址?http://localhost:4999/api/TokenAuth/Authenticate?申請Token,提交參數:用戶名、密碼

?

{ ? ?"userNameOrEmailAddress":"admin", ? ?"password":"123456"}

?

返回結果:


1 {
2
"result": {
3
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyIiwibmFtZSI6ImFkbWluIiwiQXNwTmV0LklkZW50aXR5LlNlY3VyaXR5U3RhbXAiOiJhMGU5M2Q0Yi01ZDk3LTFiZDktMTRkYS0zOWUwOTk4ODVhOTgiLCJyb2xlIjoiQWRtaW4iLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiIxIiwianRpIjoiODJkOTQ3M2EtMGE0Yy00MWZhLWI4ZDMtMzUzODJkMjJkOGFmIiwiaWF0IjoxNTAzNDY4NjM2LCJuYmYiOjE1MDM0Njg2MzYsImV4cCI6MTUwMzU1NTAzNiwiaXNzIjoiQWJwWmVyb1RlbXBsYXRlIiwiYXVkIjoiQWJwWmVyb1RlbXBsYXRlIn0.DnqpCFB2hjeYtEKd-RnJe4i4DmZVfo7EVnTXjrE18oY", 4 "encryptedAccessToken": "wNYmO41/48SHNstaLVXxHCCre29BZQl1NhC6NM3R3rwZiL572M4gBaHf6sHsTGZfcntBdt0YdGxxOmZDW4iy5jqe38W4yYK8C/ZyrckjUp2HPGDmagvdis58EyNMpU3nSRtiAxQDeAI9GbjKTvJK8UALab3hu556RViMrW+sbfD6HYigjq8CLQVBA5R83I4MwVGFWK2UXTBm3s7vfMr3TB15clrtMORUi6LxUCXaN4osbXSmoPSqtypvEfD/jDFAiXbqJaeIO/bwImWsbtZdFngCPgn5qtJ0OMb6XEFCs8YoBsZk4eA5dUqw/aji2wGLFEp9jNiDyiJ32IRLd8/Jc6J2zqd/zq2V7T53Yd3wVN9EvzZQ433LHWxEIVdaZT4LZQdkSbnXLbGNsQ2NHDpCmfTlr020TknJiC7EvrhsIam9qluWnUJ1XQbHhV+QKpLGWKmDAYC6V83wmmZVe0nEy19Kyerds65dsF2TZDXLOfibnqAQ8l+hnxFG5g33bjuia3mV2QyaAJ0YjPORgNyeJRlJAruT22Pls9ydIwDJJGGIQ5WLP0LkFYgH15qsL0bnNSUxcjChQ8gyva+MkVJ6GS+SLEumyCa5gLA6PrSGkrnTd7ssDQskbvv/B2E4UbI2Mol/yLwmtmy4rIRVhZikz9HbuqZjuNyGbKhhLnb/ZOo=",
5
"expireInSeconds": 86400,
6
"shouldResetPassword": false,
7
"passwordResetCode": null,
8
"userId": 0,
9
"requiresTwoFactorVerification": false,
10 "twoFactorAuthProviders": null,
11 "twoFactorRememberClientToken": null,
12 "returnUrl": null
13 ? ?}, ? ?
14 "targetUrl": null,
15 "success": true,
16 "error": null,
17 "unAuthorizedRequest": false,
18 "__abp": true
19 }

?

其中?accessToken 就是我們申請的token。

?

四.使用Token訪問api

在請求頭中加入?Authorization, 值為'Bearer ' + token 中間有個空格,請注意

Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyIiwibmFtZSI6ImFkbWluIiwiQXNwTmV0LklkZW50aXR5LlNlY3VyaXR5U3RhbXAiOiJhMGU5M2Q0Yi01ZDk3LTFiZDktMTRkYS0zOWUwOTk4ODVhOTgiLCJyb2xlIjoiQWRtaW4iLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiIxIiwianRpIjoiZWYzOGMzZDgtNzBkNC00YjkzLWFmNDAtMDYwZGJkNmI1YjEzIiwiaWF0IjoxNTAzNDY3NzUzLCJuYmYiOjE1MDM0Njc3NTMsImV4cCI6MTUwMzU1NDE1MywiaXNzIjoiQWJwWmVyb1RlbXBsYXRlIiwiYXVkIjoiQWJwWmVyb1RlbXBsYXRlIn0.yXV9BBWb2dxN_o8WFPWH8GrPjP2gn0FavhyCOMf3Gaw

?

返回結果:

調用成功!

?

.NET Core 交流群:4656606

相關文章:

  • ABP從入門到精通(1):aspnet-zero-core項目啟動及各項目源碼說明

  • ABP從入門到精通(2):aspnet-zero-core 使用MySql數據庫

  • ABP從入門到精通(3):aspnet-zero-core 使用Redis緩存

原文地址:http://www.cnblogs.com/stulzq/p/7417548.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。