![](/img/trans.png)
[英]Angular/Breeze SPA loading local data from webAPI service to unmapped entity
[英]Update IdentityServer user data from SPA or WebApi
我們有一個 IdentityServer4 項目,一個 web Api 項目(.net core 5)和一個 SPA 前台項目(Vue.js)。 當 SPA 向 IS4 項目本地端點發送注冊請求時,將完成用戶創建。 然后我們有一個createCompany
端點,它需要在webApi
項目中創建一個公司並在IdentityServer4
項目中更新CompanyId
。
問題是如何更好地實施? webApi
應該直接調用IdentityServer4
端點來更新 companyId 還是前端應該向 IS4 發送單獨的請求以更新 companyId?
從 webApi 訪問UserManager
的最佳方式是什么? 例如獲取具有特定CompanyId
的用戶列表? 或特定的電子郵件地址? 我應該在 IS4 中為它們中的每一個創建一個單獨的本地端點嗎? 有什么方法可以直接從 webapi 完全管理用戶,而無需在 Identityserver4 中為用戶管理創建許多端點?
我認為您缺少有關 IdentityServer4、OAuth 2.0 和 OpenID Connect 工作原理的一些信息。 IdentityServer4 是一個 OAuth 和 OpenID Connect 實現。 IdentityServer4 沒有任何方法來管理用戶數據庫或驗證用戶。 它用於使用您選擇的用戶存儲生成 OAuth 2 和 OpenID Connect 兼容令牌。
一些用於管理用戶的選項包括:
在更新的 IdentityServer4 項目Duende IdentityServer中閱讀更多內容。
您將需要使用其中之一來管理用戶,我建議您不要專門將大量自定義邏輯綁定到 IdentityServer4,除非您確實需要。 保留它以供授權,並將其他一切留給您自己的 API 或上述其他解決方案之一。
請記住,IdentityServer4 的生命周期即將結束,2022 年 11 月之后將不會更新,並且只會收到關鍵的安全錯誤修復。
所以,如果理解正確的話,你想創建一個用戶並將其保存到 IS4 中。 然后你想調用 webApi 創建一個公司,最后你必須在新用戶中將 companyId 傳遞給 IS4。
如果您不需要將數據從 IS4 傳遞到 webapi 來創建公司,您可以先調用 webApi 來創建公司,然后再調用 IS4 傳遞 companyId。 (我不喜歡這個解決方案)
如果 webApi 有許多與身份有關的事務,最好從 webApi 而不是從 SPA 調用身份。 直接從 webApi 最簡單、最安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.