sync full source from private myoffice

This commit is contained in:
myoffice-sync
2026-08-05 10:55:09 +00:00
parent 874796c860
commit 405abdfe69
714 changed files with 70352 additions and 234 deletions
@@ -0,0 +1,36 @@
namespace MyOffice.Web.Identity.ExternalProviders;
using MyOffice.Core.Identity;
using Domain;
using Google.Apis.Auth;
using Microsoft.Extensions.Options;
public class ExternalProviderValidatorGoogle : IExternalProviderValidator
{
private readonly ExternalProvidersConfig _externalProvidersConfig;
public ExternalProviderValidatorGoogle(
IOptions<ExternalProvidersConfig> externalProvidersConfig
)
{
_externalProvidersConfig = externalProvidersConfig.Value;
Provider = ExternalProvidersConst.PROVIDER_GOOGLE;
IsConfigured = _externalProvidersConfig.IsGoogleConfigured();
}
public string Provider { get; }
public bool IsConfigured { get; }
public async Task<ExternalProviderValidatorResult> ValidateAsync(string token)
{
var settings = new GoogleJsonWebSignature.ValidationSettings()
{
Audience = new List<string>() { _externalProvidersConfig.Google!.ClientId! }
};
var result = await GoogleJsonWebSignature.ValidateAsync(token, settings);
if (!result.EmailVerified) return ExternalProviderValidatorResult.Failed();
return ExternalProviderValidatorResult.Success(result.Email, result.EmailVerified, result.Subject, result.Name);
}
}