##Authorization
Authorization Setup
-
take passport_app
-
touch app.js
-
npm init -y
-
npm i -S express jade knex pg passport passport-local body-parser method-override cookie-session morgan locus dotenv bcrypt flash
-
npm install -g generate-secret
-
touch .env
-
echo node_modules > .gitignore
-
echo .env >> .gitignore
-
generate-secret -y
-
gaa
-
git commit -m "initial"
-
createdb passport_app
-
knex init
-
mkdir views routes public db helpers
-
touch routes/index.js
-
cd routes
-
touch {users, auth}.js
-
cd ../views
-
touch {layout,error}.jade
-
mkdir auth users
-
cd users
-
touch {index, new, edit, show}.jade
-
cd ../auth
-
touch login.jade
-
touch db/knex.js
-
Configure knexfile.js
- Switch from sqlite3 to pg
- Change filename to 'database_name'
- Configure pool + debug:true
-
Configure knex.js:
var environment = process.env.NODE_ENV || 'development';
var config = require('../knexfile.js')[environment];
module.exports = require('knex')(config);
- Create a migration
- Configure migration
- Optional: create a snippet for
exports.up = function(knex, Promise) {
return knex.schema.createTable('users', (t)=> {
t.increments();
t.text('email').unique().notNullable();
t.text('password').notNullable()
});
};
exports.down = function(knex, Promise) {
return knex.schema.dropTable('users');
};
- Run migration
- Set up app.js
- require all middleware
- use middleware
- listen
require("dotenv").load()
//
const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const methodOverride = require("method-override");
const session = require("cookie-session");
const morgan = require("morgan");
const routes = require("./routes");
//
app.set("view engine", "jade");
//
app.use(express.static(__dirname + "/public"));
//
app.use(bodyParser.urlencoded({extended: true));
app.use(methodOverride("_method"));
app.use(session({
secret: process.env.SECRET
}))
app.use(flash())
//
app.get("/", function(req,res){
res.redirect("/auth/login");
})
//
app.use("/users", routes.users)
app.use("/auth", routes.auth)
// Catch all errors
app.get("*", function(req,res){
res.render("error")
})
//
app.listen(3000, ( => {
console.log("Server starting on port 3000")
}))
- Create index, auth, and users routes