Ejemplo n.º 1
0
        public async Task <IActionResult> Login(string userAccessToken)
        {
            if (userAccessToken == string.Empty)
            {
                return(BadRequest());
            }

            var appToken = await _facebookService.CreateAppAccessTokenAsync(_configuration["Facebook:AppID"],
                                                                            _configuration["Facebook:AppSecret"]);

            var userIsValid = await _facebookService.CheckTokenValidityAsync(userAccessToken, appToken);

            if (!userIsValid)
            {
                return(BadRequest());
            }

            var userData = await _facebookService.GetUserDataAsync(userAccessToken);

            var userClaims = await _facebookService.Login(userData);

            var token = _tokenService.BuildToken(userClaims, DateTime.Now.AddDays(1));

            return(Ok(new UserViewModel {
                Token = token, Username = userClaims.Email
            }));
        }