public User LoginWithFacebookWeb(FbCredentials credentials) { if (credentials == null) throw new ParamMissingException("Missing credentials."); User user = Repository.Single<User>(c => c.Deleted == false && c.Facebook.FbId.Equals(credentials.FbId) , "Credential", "Facebook"); if (user != null) { // update the Facebook access token user.Facebook.FbAccessToken = credentials.FbAccessToken; user.Credential.WebSecurityToken = Guid.NewGuid().ToString(); Repository.Save(); return user; } else { // check if email exists User EmailUser = Repository.Single<User>(c => c.Deleted == false && c.Credential.Email.Equals(credentials.FbEmail) , "Credential", "Facebook"); if (EmailUser != null) { if (EmailUser.Facebook == null) { EmailUser.Facebook = new FbUser(); // update the Facebook ID EmailUser.Facebook.FbId = credentials.FbId; // update the Facebook access token EmailUser.Facebook.FbAccessToken = credentials.FbAccessToken; EmailUser.Credential.WebSecurityToken = Guid.NewGuid().ToString(); Repository.Save(); } else { return null; } return EmailUser; } else { // create new user User NewUser = new User(); NewUser.Facebook = new FbUser(); NewUser.Credential = new Credential(); NewUser.Credential.Email = credentials.FbEmail; NewUser.Credential.Username = credentials.FbEmail; NewUser.Credential.WebSecurityToken = Guid.NewGuid().ToString(); DateTime currentTime = DateTime.UtcNow; NewUser.Facebook.FbEmail = credentials.FbEmail; NewUser.Facebook.FbId = credentials.FbId; NewUser.Facebook.FbAccessToken = credentials.FbAccessToken; NewUser.UserId = Guid.NewGuid().ToString(); NewUser.Deleted = false; NewUser.CreatedAt = currentTime; NewUser.LastModified = currentTime; // NewUser.Role = new Role(); // NewUser.Role.RoleId = "1"; NewUser.RoleId = "1"; NewUser.Credential.CredentialId = Guid.NewGuid().ToString(); NewUser.Credential.Deleted = false; NewUser.Credential.LastModified = currentTime; NewUser.Credential.TokenExpiry = DateTime.MaxValue; NewUser.Credential.CreatedAt = currentTime; NewUser.Credential.LastModified = currentTime; NewUser.Credential.SecurityToken = Guid.NewGuid().ToString(); NewUser.Credential.LastModified = DateTime.UtcNow; NewUser.Credential.TokenExpiry = DateTime.MaxValue; NewUser.CredentialId = NewUser.Credential.CredentialId; Repository.Add<User>(NewUser); Repository.Save(); return NewUser; } } }
public ActionResult LoginWithFacebook(FbCredentials userCred) { try { if (userCred == null || ExtensionMethods.IsEmptyOrSpace(userCred.FbId) || ExtensionMethods.IsEmptyOrSpace(userCred.FbAccessToken)) // return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse("Missing required param")); return null; User user = _userManager.LoginWithFacebook(userCred); if (user == null) // return Request.CreateResponse(HttpStatusCode.Unauthorized, GetErrorResponse("Login failed.")); return null; else { UserLite lite = new UserLite(); lite.CopyFromUserIncludeCredentials(user); UserCreationResponse result = new UserCreationResponse { UserId = user.UserId, Token = user.Credential.SecurityToken, User = lite }; // return Request.CreateResponse(HttpStatusCode.OK, result); return null; } } catch (ParamMissingException e) { return null; // return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse(e.Message)); } catch (AlreadyExistsException e) { return null; // return Request.CreateResponse(HttpStatusCode.Conflict, GetErrorResponse(e.Message)); } catch (InvalidValueException e) { return null; // return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse(e.Message)); } catch (UserNotFoundException e) { return null; //return Request.CreateResponse(HttpStatusCode.NotFound, GetErrorResponse(e.Message)); } catch (Exception e) { return null; //return Request.CreateResponse(HttpStatusCode.InternalServerError, GetErrorResponse("Oops, server encountered an issue... " + e.Message)); } }
public User LoginWithFacebook(FbCredentials credentials) { if (credentials == null) throw new ParamMissingException("Missing credentials."); User user = Repository.Single<User>(c => c.Deleted == false && c.Facebook.FbId.Equals(credentials.FbId) , "Credential", "Facebook"); if (user == null) return null; else { // Regenrate the security token. user.Credential.SecurityToken = Guid.NewGuid().ToString(); user.Credential.LastModified = DateTime.UtcNow; user.Credential.TokenExpiry = DateTime.MaxValue; user.Facebook.FbAccessToken = credentials.FbAccessToken; Repository.Save(); return user; } }
public string FbAjax(string accessToken, string fbID, string email) { FbCredentials userCreds = new FbCredentials(); userCreds.FbId = fbID; userCreds.FbAccessToken = accessToken; userCreds.FbEmail = email; User user = _userManager.LoginWithFacebookWeb(userCreds); if (user == null) return "error"; //return Json("chamara", JsonRequestBehavior.AllowGet); return JsonConvert.SerializeObject(new WebCookieLite(user, Request.UrlReferrer)); //return "hello"; }