Пример #1
0
        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
            });
        }
Пример #2
0
        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));
            }
        }