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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

我們做項(xiàng)目的時(shí)候可能會(huì)遇到需要提供api給app調(diào)用,ABP動(dòng)態(tài)生成的WebApi提供了方便的基于JWT標(biāo)準(zhǔn)的Token訪問方式供我們?cè)L問API,不用在代碼上做任何改動(dòng),很方便有木有!

一.什么是JWT

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

?

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

八幅漫畫理解使用JSON Web Token設(shè)計(jì)單點(diǎn)登錄系統(tǒng)

?

二.ABP的WebApi訪問控制

asp.net zero core是通過IdentityServer4來實(shí)現(xiàn)的認(rèn)證、授權(quán),關(guān)于IdentityServer4介紹可以查看我前面的博文?ASP.NET Core身份認(rèn)證服務(wù)框架IdentityServer4-整體介紹

?

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

三.申請(qǐng)Token

?

http://localhost:4999 項(xiàng)目地址

?

ABP已經(jīng)為我們實(shí)現(xiàn)好了Token獲取和驗(yàn)證。

?

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

?

?

?

1.首先運(yùn)行webapi項(xiàng)目(asp.net zero core項(xiàng)目說明)

?

訪問地址?http://localhost:4999/api/TokenAuth/Authenticate?申請(qǐng)Token,提交參數(shù):用戶名、密碼

?

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

?

返回結(jié)果:


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 就是我們申請(qǐng)的token。

?

四.使用Token訪問api

在請(qǐng)求頭中加入?Authorization, 值為'Bearer ' + token 中間有個(gè)空格,請(qǐng)注意

Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyIiwibmFtZSI6ImFkbWluIiwiQXNwTmV0LklkZW50aXR5LlNlY3VyaXR5U3RhbXAiOiJhMGU5M2Q0Yi01ZDk3LTFiZDktMTRkYS0zOWUwOTk4ODVhOTgiLCJyb2xlIjoiQWRtaW4iLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiIxIiwianRpIjoiZWYzOGMzZDgtNzBkNC00YjkzLWFmNDAtMDYwZGJkNmI1YjEzIiwiaWF0IjoxNTAzNDY3NzUzLCJuYmYiOjE1MDM0Njc3NTMsImV4cCI6MTUwMzU1NDE1MywiaXNzIjoiQWJwWmVyb1RlbXBsYXRlIiwiYXVkIjoiQWJwWmVyb1RlbXBsYXRlIn0.yXV9BBWb2dxN_o8WFPWH8GrPjP2gn0FavhyCOMf3Gaw

?

返回結(jié)果:

調(diào)用成功!

?

.NET Core 交流群:4656606

相關(guān)文章:

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

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

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

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


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。