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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

IdentityServer4密码模式

發布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IdentityServer4密码模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oatuth2協議的密碼模式介紹

    • 用戶會將用戶名,密碼給予客戶端,但是客戶端不保存此信息,客戶端帶著用戶的密碼請求認證服務器,認證服務器密碼驗證通過后后將token返回給客戶端。

    • ?這里借用下阮一峰老師畫的圖(博客地址=》http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)

IdentityServer4密碼模式實現

  • 我們不需要修改資源服務器,我們在客戶端模式下的認證服務器的Config配置中,添加一個Client,允許我們使用密碼模式訪問授權服務器獲取token,再添加一個測試用戶。同時修改我們的startup,在ConfigureServices方法中配置測試用戶,代碼如下所示:

//定義可以訪問該API的客戶端public static IEnumerable<Client> GetClients(){return new List<Client>{new Client(){ClientId = "client",AllowedGrantTypes = GrantTypes.ClientCredentials, //設置模式,客戶端模式ClientSecrets ={new Secret("secret".Sha256())},AllowedScopes = { "api1" }},new Client(){ClientId="pwdClient",AllowedGrantTypes=GrantTypes.ResourceOwnerPassword, //密碼模式ClientSecrets= {new Secret("secret".Sha256()) },AllowedScopes= { "api1" }}};}public static List<TestUser> GetTestUsers(){return new List<TestUser>{new TestUser{SubjectId="1",Username="lmc",Password="123456"}};}public void ConfigureServices(IServiceCollection services){services.AddIdentityServer().AddDeveloperSigningCredential().AddInMemoryApiResources(Config.GetApiResources()) //配置資源.AddInMemoryClients(Config.GetClients()) //配置客戶端.AddTestUsers(Config.GetTestUsers()); //配置測試用戶services.AddMvc();}

此時我們使用我們定義的用戶名和密碼來訪問我們的授權服務器(這里使用postman 要注意body的數據格式為x-www-form-urlencoded)=》

帶著我們拿到的token,去訪問資源=》


總結

以上是生活随笔為你收集整理的IdentityServer4密码模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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