在使用應用程序啟動模板創建新應用程序之后,您可能需要擴展或更改SignIn Manager的默認行為,以滿足身份驗證和注冊流程的需要。ABP帳戶模塊對登錄管理器使用身份管理模塊,而身份管理模塊使用默認的Microsoft身份登錄管理器(請參閱此處)。
要編寫您的自定義登錄管理器,您需要擴展Microsoft身份登錄管理器類並將其注冊到DI容器。
本文檔說明了如何針對您自己的應用程序自定義SignIn Manager。
創建一個CustomSignInManager
創建一個繼承Microsoft Identity包的SignInMager的新類。
使用Volo.Abp.Identity.IdentityUser類型使SignInManager繼承,而不是繼承應用程序的AppUser,這一點很重要。
之后,您可以覆蓋所需的任何SignIn Manager方法,並添加身份驗證或注冊流程所需的新方法和屬性。
重寫GetExternalLoginInfoAsync方法
在這種情況下,我們將覆蓋GetExternalLoginInfoAsync
實現第三方身份驗證時調用的方法。
重寫方法的一個好方法是復制其源代碼。在這種情況下,我們將使用源代碼的較小修改版本,該版本顯式顯示了方法和屬性的名稱空間,以幫助更好地理解該概念。