0
Google 인증을 사용하여 Google ID 토큰을 확인하는 C# 백엔드 컨트롤러 메소드가 있습니다. 그것은 내 테스트 서버에 배포 한 후 처음에는 작동하지만 잠시 후 교착 상태에 빠집니다. 오류가 없으며 VerifyGoogleToken에 멈춰 있습니다. 또한이Google 토큰 확인 통화가 교착 상태입니까?
[HttpPost]
public async Task<string> VerifyGoogleToken(string Token)
{
string returnValue = await VerifyToken(Token)
return returnValue;
}
private async Task<string> VerifyToken(string Token)
{
string ReturnValue = "InvalidToken";
GoogleJsonWebSignature.Payload payload = await GoogleJsonWebSignature.ValidateAsync(Token);
if (payload.HostedDomain == "mydomain.com" && payload.EmailVerified == true && payload.Audience.ToString() == ClientID && (payload.Issuer == "accounts.google.com" || payload.Issuer == "https://accounts.google.com"))
{
ReturnValue = "ValidToken";
}
return ReturnValue;
}
:
[HttpPost]
public string VerifyGoogleToken(string Token)
{
string returnValue = VerifyToken(Token);
return returnValue;
}
private async Task<string> VerifyToken(string Token)
{
string ReturnValue = "InvalidToken";
GoogleJsonWebSignature.Payload payload = await GoogleJsonWebSignature.ValidateAsync(Token);
if (payload.HostedDomain == "mydomain.com" && payload.EmailVerified == true && payload.Audience.ToString() == ClientID && (payload.Issuer == "accounts.google.com" || payload.Issuer == "https://accounts.google.com"))
{
ReturnValue = "ValidToken";
}
return ReturnValue;
}
아무것도 지금까지 근무
using Google.Apis.Auth;
using Google.Apis.Auth.OAuth2;
[HttpPost]
public async Task<string> VerifyGoogleToken(string Token)
{
var verifyUser = Task.Run(() => VerifyToken(Token).Result);
await Task.WhenAll(verifyUser);
string returnValue = verifyUser.Result.ToString();
return returnValue;
}
private async Task<string> VerifyToken(string Token)
{
string ReturnValue = "InvalidToken";
GoogleJsonWebSignature.Payload payload = await GoogleJsonWebSignature.ValidateAsync(Token);
if (payload.HostedDomain == "mydomain.com" && payload.EmailVerified == true && payload.Audience.ToString() == ClientID && (payload.Issuer == "accounts.google.com" || payload.Issuer == "https://accounts.google.com"))
{
ReturnValue = "ValidToken";
}
return ReturnValue;
}
또한 단지이 시도.
도움을 주시면 감사하겠습니다.
비동기 호출 ValidateAsync가 실패하거나 중단 될 수 있으므로 디버깅하는 데 문제가 있다고 생각하면됩니다. Sync 메서드 호출로 테스트 할 수 있습니까? – DaniDev
거기에 동기화 버전의 메서드가 있다고 생각하지 않습니다 (Google에서 제공 한 것입니다). 또는 Sync 함수 호출로 Async 메서드를 래핑하려고 시도했는지 묻는 중입니까? –
예. 디버깅 용입니다. – DaniDev