Exemplo n.º 1
0
        public async Task <ActionResult <LoginDto> > GoogleLogin([FromBody] OneTimeTokenDto onetimeToken)
        {
            LoginDto loginDto;

            try
            {
                var payload = await GoogleJsonWebSignature.ValidateAsync(onetimeToken.TokenId,
                                                                         new GoogleJsonWebSignature.ValidationSettings());

                loginDto = new LoginDto
                {
                    FirstName  = payload.GivenName,
                    LastName   = payload.FamilyName,
                    PictureUri = payload.Picture,
                    JWTToken   = await _userService.CreateToken(payload.Email, _configuration["JwtSecret"])
                };
            }
            catch (EntityNotFoundException)
            {
                return(new UnauthorizedResult());
            }
            catch (AggregateException)
            {
                return(new UnauthorizedResult());
            }

            return(Ok(loginDto));
        }
Exemplo n.º 2
0
        public async Task PostInvalidOneTimeTokenTest()
        {
            HttpClient client = _testServer.CreateClient();

            OneTimeTokenDto invalidToken = new OneTimeTokenDto
            {
                TokenId = "testToken"
            };

            HttpResponseMessage response = await client.PostAsync(_apiEndpoint + "api/user/google", invalidToken, new JsonMediaTypeFormatter());

            Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
        }
Exemplo n.º 3
0
        public ActionResult<UserDto> Google([FromBody]OneTimeTokenDto oneTimeTokenDto)
        {
            UserDto user;

            try
            {
                GoogleJsonWebSignature.Payload payload = GoogleJsonWebSignature.ValidateAsync(oneTimeTokenDto.TokenId, new GoogleJsonWebSignature.ValidationSettings()).Result;
                user = _service.Authenticate(payload, out int userId);

                user.JWTToken = CreateToken(userId);
            }
            catch (Exception)
            {
                return new UnauthorizedResult();
            }

            return Ok(user);
        }