我正在使用具有凭据和oauth2(google / linkedin)身份验证/授权的Web应用程序。用户将由管理员注册并获得凭据。 此外,一旦注册的用户也可以通过oauth2进行身份验证。
问题在于,如果成功通过Google / Linkedin进行身份验证,Oauth2提供商将在网站中对请求进行授权,尽管用户根本不存在该请求。它们会自动为存储库中的UserAuth和UserAuthDetail创建记录。
是否有办法覆盖此默认行为,而是检查用户是否存在?
提前致谢
答案 0 :(得分:2)
OAuth提供商就像您描述的那样工作。如果用户是网站新用户,并且不想发明并记住另一个密码,他/她可以选择使用可用的OAuth提供商,ServieStack将为他/她创建用户帐户。
如果使用凭据提供程序登录网站的现有用户决定通过OAuth提供程序登录,则有两种可能的情况:
如果您需要覆盖此内容,则可以将GoogleOAuth2Provider子类化并覆盖SaveUserAuth
,默认情况下使用IUserAuthRepository.CreateOrMergeAuthSession()