public IActionResult GetUserInfo() { ApplicationUserController userController = new ApplicationUserController(_db, _userManager); userController.ConnectUserAndTokens(_db.Users.Find(_userManager.GetUserId(User))); var trueToken = new Token(); var accessToken = _db.Tokens.Where(w => w.UserId == _userManager.GetUserId(User)).ToList(); foreach (var token in accessToken) { if (token.UserId == _userManager.GetUserId(User)) { trueToken = token; } } HttpClient http = new HttpClient(); //Adding HTTP header to our Get request, the token parameter should be trueToken.AccessToken //However the access tokens we receive from the FEIDE login do not work http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "1f4d6f53-1594-459f-a718-bbc251861e5a"); var data = http.GetAsync("https://groups-api.dataporten.no/groups/me/groups").Result.Content .ReadAsStringAsync().Result; var tempString = data.Split(","); foreach (var temp in tempString) { if (temp.Contains("id")) { var courseCode = temp.Split(":"); foreach (var course in courseCode) { if (course.Any(char.IsUpper) && course.Any(char.IsDigit)) { Course newCourse = new Course(); newCourse.Code = course; newCourse.UserId = _userManager.GetUserId(User); //newCourse.User; var courseList = _db.Courses.Where(w => w.UserId == _userManager.GetUserId(User) && w.Code == newCourse.Code).ToList(); if (courseList.Count == 0) { _db.Add(newCourse); } } } } } _db.SaveChanges(); return(Ok()); }
public IActionResult GetUserInfo(string userId) { ApplicationUserController userController = new ApplicationUserController(_db, _userManager); userController.ConnectUserAndTokens(_db.Users.Find(userId)); var trueToken = new Token(); var accessToken = _db.Tokens.Where(w => w.UserId == userId).ToList(); foreach (var token in accessToken) { if (token.UserId == userId) { trueToken = token; } } HttpClient http = new HttpClient(); //Adding HTTP header to our Get request, the token parameter should be trueToken.AccessToken //However the access tokens we receive from the FEIDE login do not work //We use a token generated by postman instead, as it uses OAUTH 2.0 instead of OIDC to receive the token http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "33d21b72-d49d-4ccd-ac84-0f5e4e28178f"); var data = http.GetAsync("https://groups-api.dataporten.no/groups/me/groups").Result.Content .ReadAsStringAsync().Result; var tempString = data.Split(","); //set a length that the Feide reply has to be greater than to ensure only valid responses if (data.Length < 100) { return(BadRequest()); } foreach (var temp in tempString) { if (temp.Contains("id")) { var courseCode = temp.Split(":"); foreach (var course in courseCode) { if (course.Any(char.IsUpper) && course.Any(char.IsDigit)) { Course newCourse = new Course(); newCourse.Code = course; newCourse.UserId = userId; //newCourse.User; var courseList = _db.Courses.Where(w => w.UserId == userId && w.Code == newCourse.Code).ToList(); if (courseList.Count == 0) { _db.Add(newCourse); } } } } } _db.SaveChanges(); return(Ok()); }