public IHttpActionResult Register(UserLoginDto userLoginDto) { var userDto = userLoginDto.User; var credentials = userLoginDto.Credentials; User user = userDto.ToUser(); IProviderVerifyResult res = LoginService.VerifyCredentials(credentials); user.ProfilePicture = res.ProfilePictureUrl; UserLoginInfo loginInfo = new UserLoginInfo(credentials.Provider, res.Id); //TODO add user prof picture to user once model supports that if (loginInfo == null) { return(BadRequest("Invalid authentication data")); } var extantUser = UserManager.Find(loginInfo); if (extantUser != null) { return(BadRequest("You have already created an account!")); } bool created = LoginService.CreateAccount(user, loginInfo); if (created) { return(Ok()); } else { return(BadRequest()); } }
public void Initialize() { _facebookUser = UserGenerator.GenerateFacebookUser(); _twitterUser = UserGenerator.GenerateTwitterUser(); _facebookResult = ProviderVerifyResultGenerator.GenFacebookVerifyResult(); _twitterResult = ProviderVerifyResultGenerator.GenTwitterVerifyResult(); _facebookGrant = AccessGrantGenerator.GenFacebookGrant(); _twitterGrant = AccessGrantGenerator.GenTwitterGrant(); _facebookCredentials = CredentialsDtoGenerator.GenFacebookCredentials(); _twitterCredentials = CredentialsDtoGenerator.GenTwitterCredentials(); }
public Models.IProviderVerifyResult VerifyCredentials(CredentialsDto credentials) { IProviderVerifyResult res = null; String provider = credentials.Provider; if (provider == CredentialsDto.FACEBOOK) { FacebookService.Token = credentials.Token; res = FacebookService.VerifyCredentials(); } else if (provider == CredentialsDto.TWITTER) { TwitterService.Secret = credentials.Secret; TwitterService.Token = credentials.Token; res = TwitterService.VerifyCredentials(); } return(res); }
private void assertApiLoginReturnsAccessGrantWhenLegitCredentials(AccessGrantDto grant, User user, CredentialsDto credentials, IProviderVerifyResult verifyResult) { var loginMock = new Mock <ILoginService>(); loginMock.Setup(svc => svc.VerifyCredentials(credentials)).Returns(verifyResult); loginMock.Setup(svc => svc.GenerateAccessGrant(user, credentials)).Returns(grant); var userManager = Mock.Of <IUserManager>(man => man.Find(It.IsAny <UserLoginInfo>()) == user); var con = new AccountsController(userManager, loginMock.Object); var response = con.Login(credentials); var result = response as OkNegotiatedContentResult <AccessGrantDto>; var resultGrant = result.Content; Assert.IsTrue(resultGrant.EqualValues(grant)); }