Ejemplo n.º 1
0
        public IHttpActionResult GetAuthTest(int userId)
        {
            var user = db.Users.Find(userId);

            if (user == null)
            {
                return(NotFound());
            }

            string token = user.GenerateAccessToken();

            var dto = new ApiAuthDto(token, user);

            return(Ok(dto));
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> GetAuth(string token)
        {
            string verifyUrl = $"https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={token}";

            var response = await client.GetAsync(verifyUrl);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                return(BadRequest("Invalid Token"));
            }

            string json = await response.Content.ReadAsStringAsync();

            var auth = JsonConvert.DeserializeObject <GoogleAuthResponseDto>(json);

            //string androidClientId = "77421544828-33rdp50mrdtpeje5dpbal37s63e5ojco.apps.googleusercontent.com";

            if (auth.ClientIdWeb != AuthConfig.ClientId) // && data.ClientIdApp != androidClientId
            {
                return(BadRequest("Invalid Token Origin"));
            }

            var user = db.Users.FirstOrDefault(u => u.Email == auth.Email);

            if (user == null)
            {
                user = auth.ToEntity();

                db.Users.Add(user);
                db.SaveChanges();
            }

            string accessToken = user.GenerateAccessToken();

            var dto = new ApiAuthDto(accessToken, user);

            return(Ok(dto));
        }