private static async Task SaveAuthToken(AuthState authState, OAuthResult authResult, FacebookUserProfile userProfile) { using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.FacebookAuthority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.access_token, Provider = Settings.FacebookAuthority, Username = userProfile.id, }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }
private static async Task SaveAuthToken(AuthState authState, AuthenticationResult authResult) { var idToken = SessionToken.ParseJwtToken(authResult.IdToken); string username = null; var userNameClaim = idToken.Claims.FirstOrDefault(x => x.Type == "upn"); if (userNameClaim != null) { username = userNameClaim.Value; } using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.AzureADAuthority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.AccessToken, Provider = Settings.AzureADAuthority, Username = username }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }
private static async Task SaveAuthToken(AuthState authState, OAuthResult authResult) { using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.GoogleAuthority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } string username = null; var jwt = SessionToken.ParseJwtToken(authResult.id_token); var emailClaim = jwt.Claims.FirstOrDefault(c => c.Type == "email"); if (emailClaim != null) { username = emailClaim.Value; } var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.access_token, Provider = Settings.GoogleAuthority, Username = username, }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }