public async Task <AuthenticateUserResult> AuthenticateGoogleToken(AuthenticateUserWithGoogleRequest request) { var googleResult = await googleTokenVerificationService.Validate(request.GoogleToken); if (!googleResult.IsSuccessful) { return(new AuthenticateUserResult(googleResult.Error)); } var result = await mediator.Send(new AuthenticateGoogleUser { GoogleId = googleResult.TokenInfo.GoogleUserId, DisplayName = googleResult.TokenInfo.DisplayName, Email = googleResult.TokenInfo.Email, ImageUrl = googleResult.TokenInfo.ImageUrl }); if (!result.IsSuccessful) { return(new AuthenticateUserResult(result.Error)); } var token = tokenFactory.GenerateEncodedToken(result.User.Code); return(new AuthenticateUserResult { Code = result.User.Code, Email = result.User.Email, ImageUrl = result.User.ImageUrl, Name = result.User.DisplayName, Token = token }); }
public async Task <ActionResult <AuthenticateUserResult> > AuthenticateGoogle([FromBody] AuthenticateUserWithGoogleRequest model) { var result = await authenticateService.AuthenticateGoogleToken(model); if (result.IsSuccessful) { return(Ok(result)); } else { return(BadRequest(result.Error)); } }