public IPrincipalExtensionsTests() { this.facebookCredentials = new FacebookCredentials() { UserId = "Facebook:FBUserId", AccessToken = "ABCDEF" }; HttpConfiguration config = new HttpConfiguration(); this.tokenHandlerMock = new Mock<AppServiceTokenHandler>(config) { CallBase = true }; this.tokenHandler = this.tokenHandlerMock.Object; }
public ServiceUserTests() { this.facebookCredentials = new FacebookCredentials() { UserId = "Facebook:FBUserId", AccessToken = "ABCDEF" }; HttpConfiguration config = new HttpConfiguration(); this.tokenHandlerMock = new Mock<MobileAppTokenHandler>(config) { CallBase = true }; this.tokenHandler = this.tokenHandlerMock.Object; }
void FillDataFromFacebook(FacebookCredentials credentials, out string first, out string last, out string profile) { first = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.GivenName)?.Value ?? string.Empty; last = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.Surname)?.Value ?? string.Empty; var id = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value ?? string.Empty; profile = $"https://graph.facebook.com/{id}/picture?type=large"; }
public MobileAppTokenHandlerTests() { this.config = new HttpConfiguration(); this.tokenHandlerMock = new Mock<MobileAppTokenHandler>(this.config) { CallBase = true }; this.tokenHandler = this.tokenHandlerMock.Object; this.credentials = new FacebookCredentials { UserId = "Facebook:1234", AccessToken = "abc123" }; }
public void PopulateProviderCredentials_Facebook_CreatesExpectedCredentials() { const string UserIdClaimValue = "FacebookId"; FacebookCredentials credentials = new FacebookCredentials(); TokenEntry tokenEntry = new TokenEntry("facebook"); tokenEntry.AccessToken = "TestAccessToken"; List<ClaimSlim> claims = new List<ClaimSlim> { new ClaimSlim("Claim1", "Value1"), new ClaimSlim("Claim2", "Value2"), new ClaimSlim("Claim3", "Value3"), }; tokenEntry.UserClaims = claims; tokenEntry.UserId = UserIdClaimValue; IPrincipalExtensions.PopulateProviderCredentials(tokenEntry, credentials); Assert.Equal("TestAccessToken", credentials.AccessToken); Assert.Equal(UserIdClaimValue, credentials.UserId); Assert.Equal(claims.Count, credentials.Claims.Count); }
public void PopulateProviderCredentials_Facebook_CreatesExpectedCredentials() { const string UserIdClaimValue = "FacebookId"; FacebookCredentials credentials = new FacebookCredentials(); TokenResult tokenResult = new TokenResult(); tokenResult.Properties.Add(TokenResult.Authentication.AccessTokenName, "TestAccessToken"); Dictionary<string, string> claims = new Dictionary<string, string> { { "Claim1", "Value1" }, { "Claim2", "Value1" }, { "Claim3", "Value1" }, { ClaimTypes.NameIdentifier, UserIdClaimValue } }; tokenResult.Claims = claims; MobileAppUser.PopulateProviderCredentials(tokenResult, credentials); Assert.Equal("TestAccessToken", credentials.AccessToken); Assert.Equal(UserIdClaimValue, credentials.UserId); Assert.Equal(claims.Count, credentials.Claims.Count); }
private static void ValidateTestCredentials(FacebookCredentials credentials) { Assert.Equal("Facebook", credentials.Provider); Assert.Equal("Facebook:1234", credentials.UserId); Assert.Equal("abc123", credentials.AccessToken); }
internal static void PopulateProviderCredentials(TokenResult tokenResult, ProviderCredentials credentials) { if (tokenResult.Claims != null) { credentials.Claims = new Dictionary <string, string>(tokenResult.Claims); } FacebookCredentials facebookCredentials = credentials as FacebookCredentials; if (facebookCredentials != null) { facebookCredentials.AccessToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.AccessTokenName); facebookCredentials.UserId = tokenResult.Claims.GetValueOrDefault(ClaimTypes.NameIdentifier); return; } GoogleCredentials googleCredentials = credentials as GoogleCredentials; if (googleCredentials != null) { googleCredentials.AccessToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.AccessTokenName); googleCredentials.RefreshToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.RefreshTokenName); googleCredentials.UserId = tokenResult.Claims.GetValueOrDefault(ClaimTypes.NameIdentifier); string expiresOn = tokenResult.Properties.GetValueOrDefault("AccessTokenExpiration"); if (!string.IsNullOrEmpty(expiresOn)) { googleCredentials.AccessTokenExpiration = DateTimeOffset.Parse(expiresOn, CultureInfo.InvariantCulture); } return; } AzureActiveDirectoryCredentials aadCredentials = credentials as AzureActiveDirectoryCredentials; if (aadCredentials != null) { aadCredentials.AccessToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.AccessTokenName); aadCredentials.ObjectId = tokenResult.Properties.GetValueOrDefault("ObjectId"); aadCredentials.TenantId = tokenResult.Properties.GetValueOrDefault("TenantId"); aadCredentials.UserId = tokenResult.Claims.GetValueOrDefault(ClaimTypes.NameIdentifier); return; } MicrosoftAccountCredentials microsoftAccountCredentials = credentials as MicrosoftAccountCredentials; if (microsoftAccountCredentials != null) { microsoftAccountCredentials.AccessToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.AccessTokenName); microsoftAccountCredentials.RefreshToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.RefreshTokenName); microsoftAccountCredentials.UserId = tokenResult.Claims.GetValueOrDefault(ClaimTypes.NameIdentifier); string expiresOn = tokenResult.Properties.GetValueOrDefault("AccessTokenExpiration"); if (!string.IsNullOrEmpty(expiresOn)) { microsoftAccountCredentials.AccessTokenExpiration = DateTimeOffset.Parse(expiresOn, CultureInfo.InvariantCulture); } return; } TwitterCredentials twitterCredentials = credentials as TwitterCredentials; if (twitterCredentials != null) { twitterCredentials.AccessToken = tokenResult.Properties.GetValueOrDefault(TokenResult.Authentication.AccessTokenName); twitterCredentials.AccessTokenSecret = tokenResult.Properties.GetValueOrDefault("AccessTokenSecret"); twitterCredentials.UserId = tokenResult.Claims.GetValueOrDefault(ClaimTypes.NameIdentifier); return; } }
private void ValidateLoginToken(string token, FacebookCredentials expectedCredentials) { // validate the token and get the claims principal ClaimsPrincipal claimsPrincipal = null; Assert.True(this.tokenHandler.TryValidateLoginToken(token, TestSecretKey, out claimsPrincipal)); // create a user from the token and validate properties MobileAppUser user = this.tokenHandler.CreateServiceUser((ClaimsIdentity)claimsPrincipal.Identity, token); Assert.Equal(expectedCredentials.UserId, user.Id); Assert.Equal(token, user.MobileAppAuthenticationToken); }