Limitar los inicios de session a través de las organizaciones de Github en Firebase

Estoy trabajando en una aplicación que usa Firebase como back-end. Tengo una implementación funcional de authentication GitHub usando Firebase. Sin embargo, quiero limitar mi aplicación completa (todas las operaciones de lectura / escritura) a las personas en una organización específica de GitHub.

Por lo que deduzco, debe hacerse agregando reglas de security en Forge. Sin embargo, la organización de un usuario no forma parte de los "datos básicos de authentication" que GitHub proporciona a Firebase para su uso. ¿Hay alguna manera de hacer que la aplicación esté disponible solo para los miembros de una organización en particular?

Código actual:

var FB = new Firebase('https://XXXXX.firebaseio.com'); var auth = new FirebaseSimpleLogin(FB, function(error, user){ if(user==null){ auth.login('github',{rememberMe:true}); } else{ //We are logged in $.getJSON("https://api.github.com/user/orgs?access_token="+user.accessToken+"&callback=?", function(data){ var orgs = data.data.map(function(org){return org.login}); if(orgs.indexOf(config.github_org)>-1){ //Public Member of Chosen Github Org //Now we fetch the data and render it } else{ //Throw them out alert("Join the group "+config.github_org+" on GitHub to get access to Eon"); document.location="https://github.com/"+config.github_org; } }) } }); 

Para usar las Reglas de security de FB necesitarás comparar los datos de auth con algo en Firebase (como una list de organizaciones), pero parece que estás tratando de getlos sobre la marcha todo el time. En su lugar, recomendaría mantener una colección de users en su Firebase organizados por su auth.uid que tengan lists de organizaciones con las que pueda auth.uid :

 users uid1 ... uidX orgs org1 ... orgX 

Entonces, cuando un usuario intenta acceder a una orgX determinada, puede verificar si root.child('users').child(auth.uid).child('orgs/orgX') existe en sus Reglas de security.