Proyecto Final Sistemas y Tecnologías Web
Información
Se desarrolla un plugin para el paquete npm-gitbook-start-plugin-general-noejaco17. La idea es permitir a un usuario implementar y desplegar sus propios libros electrónicos a través de la creación de un servidor en la plataforma heroku así como controlar y llevar un seguimiento de los usuarios que tienen acceso a su contenido.
La aplicación del usuario se desplegará en www.nombre_app.herokuapp.com haciendo uso del plugin mLab para la gestión de la base de datos adherida MongoDB e implementando diversos tipos de autenticación: LocalStrategy, autenticación a través de Github, Twitter y Google.
Paquetes y herramientas necesarias
- Plugin principal
- Node.js
- npm
Pasos a seguir:
Instalación del plugin
Una vez instalado el paquete principal, deberemos proveer al mismo de un package.json, para ello escribiremos en consola:
npm init -y
Esto nos generará un package.json, con la opción -y evitamos tener que interactuar con el prompt de npm puesto que en este caso no necesitamos configuración ninguna.
Llegados a este punto ya podemos comenzar con la instalación del plugin final, lo haremos mediante el siguiente comando:
[sudo] npm i[nstall] --save gitbook-start-proyectofinal-noejaco
Finalizada la instalación podremos ya ejecutar la opción --deploy final de nuestro paquete principal. Para ello escribimos en consola el siguiente comando:
gitbook-start --deploy final --directorio nombre_directorio
En este paso el programa nos pedirá ciertos datos, como son el nombre de nuestra aplicación, repositorios... Una vez introducidos, se nos habrá creado el directorio con nombre: nombre_directorio. Deberemos acceder a él (cd nombre_directorio) e instalar los paquetes necesarios a través de:
npm i[nstall]
Nota: En caso de dar problemas de no encontrar los módulos debido a un conflicto de paquetes, ejecutar su instalación manualmente- Esto puede suceder con un número muy reducido de paquetes. Para su instalación:
npm install --save nombre_paquete
Para el trabajo personal sobre nuestro libro
A continuación debemos iniciar nuestro directorio como repositorio git:
git init
Una vez hecho esto solo necesitaremos añadir como remoto el repositorio git de nuestra aplicación heroku:
git remote add origin __repo_git_heroku__
Llegados a este punto ya tendremos lo necesario para trabajar sobre nuestro libro. La edición del libro se lleva a cabo en el directorio /txt. Una vez finalizado, o en cada momento que queramos guardar lo que llevamos realizado ejecutaremos:
gulp deploy
Y por último, para arrancar nuestra aplicación, podremos hacerlo mediante:
- Node, de forma local:
node app.js
A continuación en el navegador accedemos a: localhost:8080
- Heroku:
gulp deploy-heroku-mongo
A continuación nos dirigimos a la página oficial de Heroku y accedemos a nuestra aplicación.
Para la configuración de los servicios de autenticación de nuestra aplicación
Como se ha citado en líneas anteriores, nuestra aplicación implementa cuatro tipos de autenticación: LocalStrategy, Github, Twitter y Google. Para poder servirnos de las ventajas que estas ofrecen para nuestra aplicación serán necesarios ciertos ajustes: En la estructura generada en pasos anterioriores encontraremos un archivo llamado auth.js. Este archivo nos sirve para mantener la información necesaria para las diversas autenticaciones de nuestra aplicación. En el fichero podremos ver tres apartados principales, cada uno de ellos para la configuración de las respectivas autoridades autenticadoras. Podremos ver tres campos para cada uno de ellos, el primero referido al id de la aplicación, el segundo al secreto de la misma y el último para la callback a la que llamará la autoridad.
Obtención de los datos para auth.js
- #### Github
- Acceder a nuestra cuenta Github
- Dirigirnos a settings
- En el panel que se muestra en la parte izquierda acceder a OAuth applications
- En esta sección registraremos nuestra aplicación y accediendo a ella podremos obtener los tres campos necesarios.
- #### Twitter
- Nos dirigimos a la sección developers de Twitter
- Registraremos una nueva aplicación en caso de no tener una y obtendremos los datos necesarios de la misma igual que en el caso de Github.
- #### Google
- Accederemos a la sección developers de Google
- Crearemos un nuevo proyecto
- Dentro de nuestro proyecto accederemos a la sección APIs & Auth
- En la sección de Credentials asignaremos los orígenes para los que Google permitirá acceder a nuestra aplicación así como la callback designada para la misma.
- Ahora ya podremos acceder al proyecto y consultar tanto el id como el secreto necesarios.