c# 谷歌登录授权,通过验证客户端上报的IdToken的方式
- 需要通过nuget引用Google.Apis.Auth
public async Task<GoogleTokenResult> CheckToken(string token)
{
try
{
var settings = new GoogleJsonWebSignature.ValidationSettings() { };
var payload = await GoogleJsonWebSignature.ValidateAsync(token, settings);
if (payload.IsNull())
{
throw new ValidateException("GoogleExpire", "谷歌验证失败");
}
GoogleTokenResult objGoogleTokenResult = new GoogleTokenResult
{
Audience = payload.Audience.IsNull() ? "" : payload.Audience.ToString(),
Email = payload.Email,
Email_Verified = payload.EmailVerified,
Name = payload.Name,
Picture = payload.Picture,
Sub = payload.Subject
};
return objGoogleTokenResult;
}
catch (Exception ex)
{
throw new ValidateException("GoogleExpire", "谷歌验证失败");
}
}
public class GoogleTokenResult
{
public string Sub { get; set; }
public string? Audience { get; set; }
public string Email { get; set; }
public bool Email_Verified { get; set; }
public string Name { get; set; }
public string Picture { get; set; }
}