public async Task <IActionResult> Login(LinkedinUserAuthCodeDto linkedinUserAuthCodeDto) { string linkedinAuthToken = await ExchangeLinkedinCodeToUserToken(linkedinUserAuthCodeDto.LinkedinAuthCode); LinkedinUser linkedinUser = await GetLinkedinUser(linkedinAuthToken); User user = await _userManager.FindByEmailAsync(linkedinUser.Email); if (user == null) { user = new User { UserName = linkedinUser.Email.Split("@")[0], NickName = linkedinUser.LocalizedFirstName + " " + linkedinUser.LocalizedLastName, Email = linkedinUser.Email, PhotoUrl = await _photoController.UploadAvatarByUrl(linkedinUser.PhotoUrl), RegisteredVia = "Linkedin", Created = DateTime.Now, LastActive = DateTime.Now }; var result = await _userManager.CreateAsync(user); if (!result.Succeeded) { return(BadRequest("User not created")); } var res = _userManager.AddToRoleAsync(user, "User").Result; if (!res.Succeeded) { return(BadRequest("error on adding role for user")); } } // generate the jwt for the local user... var userForToken = await _userManager.FindByEmailAsync(user.Email); if (userForToken == null) { return(BadRequest("cant create user")); } string token = AppTokens.GenerateJwtToken(userForToken, _config, _userManager).Result; var userForReturnDto = _mapper.Map <UserForReturnDto>(userForToken); return(Ok(new { token = token, user = userForReturnDto })); }
public async Task <IActionResult> FbLogin(FbUserAuthCodeDto fbUserAuthCodeDto) { string fbAuthToken = await ExchangeFbCodeToFbUserToken(fbUserAuthCodeDto.fbAuthCode); FbUser fbUser = await GetFbUser(fbAuthToken); User user = await _userManager.FindByEmailAsync(fbUser.Email); if (user == null) { user = new User { UserName = fbUser.Email.Split("@")[0], NickName = fbUser.Name, Email = fbUser.Email, PhotoUrl = await _photoController.UploadAvatarByUrl(fbUser.Picture.Data.Url) }; var result = await _userManager.CreateAsync(user); if (!result.Succeeded) { return(BadRequest("User not created")); } var res = _userManager.AddToRoleAsync(user, "User").Result; if (!res.Succeeded) { return(BadRequest("error on adding role for user")); } } // generate the jwt for the local user... var userForToken = await _userManager.FindByEmailAsync(user.Email); if (userForToken == null) { return(BadRequest("cant create user")); } string token = AppTokens.GenerateJwtToken(userForToken, _config, _userManager).Result; var userForReturnDto = _mapper.Map <UserForReturnDto>(userForToken); return(Ok(new { token = token, user = userForReturnDto })); }
public async Task <IActionResult> Login(UserForLoginDto userForLoginDto) { var user = await _userManager.FindByEmailAsync(userForLoginDto.Email); if (user == null) { return(Unauthorized()); } var result = await _signInManager.CheckPasswordSignInAsync(user, userForLoginDto.Password, false); if (result.Succeeded) { string token = await AppTokens.GenerateJwtToken(user, _config, _userManager); var userForReturnDto = _mapper.Map <UserForReturnDto>(user); return(Ok(new { token = token, user = userForReturnDto })); } return(Unauthorized()); }