public Models.AccessGrantDto GenerateAccessGrant(User user, CredentialsDto credentials) { var tokenExpirationTimeSpan = TimeSpan.FromDays(14); var identity = new ClaimsIdentity(Startup.OAuthBearerOptions.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Name, user.Id, null, credentials.Provider)); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id, null, "LOCAL_AUTHORITY")); AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties()); var currentUtc = new Microsoft.Owin.Infrastructure.SystemClock().UtcNow; ticket.Properties.IssuedUtc = currentUtc; ticket.Properties.ExpiresUtc = currentUtc.Add(tokenExpirationTimeSpan); var accesstoken = Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket); Authentication.SignIn(identity); AccessGrantDto grant = new AccessGrantDto { AccessToken = accesstoken, Expires = ticket.Properties.ExpiresUtc.Value.DateTime, ExpiresIn = tokenExpirationTimeSpan.Seconds.ToString(), Issued = ticket.Properties.IssuedUtc.Value.DateTime, ID = user.Id, UserName = user.UserName, TokenType = TOKEN_TYPE }; return(grant); }
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 static bool EqualValues(this AccessGrantDto self, AccessGrantDto other) { bool equal = self.AccessToken == other.AccessToken && self.Expires == other.Expires && self.ExpiresIn == other.ExpiresIn && self.ID == other.ID && self.Issued == other.Issued && self.TokenType == other.TokenType && self.UserName == other.UserName; return(equal); }
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)); }