Práctica: Autenticación OAuth con Passport
Objetivo:
El servidor proveído por el plugin (sea iaas
o heroku
) deberá autenticar que el lector
del libro pertenece a una organización dada de GitHub (por ejemplo ULL-ESIT-SYTW-1617). Si es el caso que pertenece podrá seguir leyendo el libro, sino será redirigido a la ruta de autenticación
- Puede partir de los repos de los plugins que ha usado en prácticas anteriores o crear unos nuevos
Referencias
- Sección OAuth y Passport en los apuntes
- Sección Rest y GitHub API en los apuntes
- GitHub API: Organization membership
- GitHub API: Organizations
Ejemplos y Ayudas
- GitHub repo demonstrating how to use Express 4.x and Passport to authenticate users using GitHub
- GitHub repo demonstrating how to use Express 4.x and Passport to authenticate users using Facebook
- GitHub API
- Check membership of a user in a GitHub organization: Check if a user is, publicly or privately, a member of the GitHub organization.
GET /orgs/:org/members/:username
- Check membership of a user in a GitHub organization: Check if a user is, publicly or privately, a member of the GitHub organization.
Octonode
Get an organization's members (
GET /orgs/ULL-ESIT-SYTW-1617/members
)This query supports pagination.
var ghme = client.me(); var ghuser = client.user('crguezl'); var ghrepo = client.repo('crguezl/ull-esit-1617'); var ghorg = client.org('ULL-ESIT-SYTW-1617'); ghorg.members(callback); //array of github users
Check an organization member (
GET /orgs/ULL-ESIT-SYTW-1617/members/crguezl
)ghorg.member('crguezl', callback); //boolean
Check a member's public membership in an org (
GET /orgs/ULL-ESIT-SYTW-1617/public_members/crguezl
)ghorg.publicMember('crguezl', callback); //boolean