Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
        }