DefaultExternalAuthenticationSource.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using VberZero.BaseSystem.MultiTenancy;
  2. using VberZero.BaseSystem.Users;
  3. namespace VberZero.Authorization.Users;
  4. /// <summary>
  5. /// 这是一个帮助器基类,可以轻松更新 <see cref="IExternalAuthenticationSource"/>。
  6. /// 默认实现一些方法,但您可以覆盖所有方法。
  7. /// </summary>
  8. public abstract class DefaultExternalAuthenticationSource : IExternalAuthenticationSource
  9. {
  10. /// <inheritdoc/>
  11. public abstract string Name { get; }
  12. /// <inheritdoc/>
  13. public abstract Task<bool> TryAuthenticateAsync(string userNameOrEmailOrPhone, string plainPassword, Tenant? tenant);
  14. /// <inheritdoc/>
  15. public virtual Task<User> CreateUserAsync(string userNameOrEmailPhone, Tenant? tenant)
  16. {
  17. return Task.FromResult(
  18. new User
  19. {
  20. UserName = userNameOrEmailPhone,
  21. Name = userNameOrEmailPhone,
  22. Surname = userNameOrEmailPhone,
  23. EmailAddress = userNameOrEmailPhone,
  24. IsEmailConfirmed = true,
  25. IsActive = true
  26. });
  27. }
  28. /// <inheritdoc/>
  29. public virtual Task UpdateUserAsync(User user, Tenant? tenant)
  30. {
  31. return Task.FromResult(0);
  32. }
  33. }