MongoDB Authentication

Содержание

Слайд 2

SQL vs NoSQL MongoDB Mongoose Authentication Passport.js AGENDA OF THE LECTURE

SQL vs NoSQL
MongoDB
Mongoose
Authentication
Passport.js

AGENDA OF THE LECTURE

Слайд 3

NOSQL SQL VS

NOSQL

SQL VS

Слайд 4

RELATIONAL DATABASE PROBLEMS Scalability Flexibility NoSQL databases solve these problems

RELATIONAL DATABASE PROBLEMS

Scalability
Flexibility

NoSQL databases solve these problems

Слайд 5

NOSQL DATABASE PROBLEMS No join No data integrity No transaction

NOSQL DATABASE PROBLEMS

No join
No data integrity
No transaction

Слайд 6

WHERE SQL IS IDEAL logical related discrete data requirements which can

WHERE SQL IS IDEAL

logical related discrete data requirements which can

be identified up-front
data integrity is essential
standards-based proven technology with good developer experience and support
Слайд 7

WHERE NOSQL IS IDEAL unrelated, indeterminate or evolving data requirements simpler

WHERE NOSQL IS IDEAL

unrelated, indeterminate or evolving data requirements

simpler or looser project objectives, able to start coding immediately
speed and scalability is imperative
Слайд 8

MONGODB

MONGODB

Слайд 9

MONGODB MongoDB is an open source, document-oriented database designed with both

MONGODB

MongoDB is an open source, document-oriented database designed with both scalability

and developer agility in mind.
Слайд 10

MONGODB COMPRASION TO SQL

MONGODB COMPRASION TO SQL

Слайд 11

MOGNODB CLI DEMO

MOGNODB CLI

DEMO

Слайд 12

MONGODB CLI show dbs use show collections help / db.help() /db.collection.help()

MONGODB CLI

show dbs
use
show collections
help / db.help()

/db.collection.help()
Слайд 13

MONGODB CLI CRUD db.collection.insert(document) db.collection.find(query, projection) db.collection.update(query, update, options) db.collection.remove(query, options)

MONGODB CLI CRUD

db.collection.insert(document)
db.collection.find(query, projection)
db.collection.update(query, update, options)
db.collection.remove(query, options)

Слайд 14

MONGODB DRIVERS An application communicates with MongoDB by way of a

MONGODB DRIVERS

An application communicates with MongoDB by way of a client

library, called a driver, that handles all interaction with the database in a language appropriate to the application.

npm install mongodb

Слайд 15

MOGNODB NATIVE DRIVER DEMO

MOGNODB NATIVE DRIVER

DEMO

Слайд 16

ORM, ODM ORM (Object-Relational Mapping), ODM (Object Document Mapper) - programming

ORM, ODM

ORM (Object-Relational Mapping), ODM (Object Document Mapper) - programming technique

for converting data between incompatible type systems in databases and object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language.

Most popular ORM in Node.js – Sequelize.

ORM – for relational databases, ODM – for NoSQL databases.

Слайд 17

MONGOOSE

MONGOOSE

Слайд 18

MONGOOSE Mongoose provides a straight-forward, schema-based solution to model your application

MONGOOSE

Mongoose provides a straight-forward, schema-based solution to model your application data.

It includes built-in type casting, validation, query building, business logic hooks and more, out of the box.
Слайд 19

MONGOOSE DEMO

MONGOOSE

DEMO

Слайд 20

MONGOOSE API mongoose.connect(url, options) mongoose.Promise mongoose.Schema mongoose.model(name, schema) mongoose.plugin(func, options)

MONGOOSE API

mongoose.connect(url, options)
mongoose.Promise
mongoose.Schema
mongoose.model(name, schema)
mongoose.plugin(func, options)

Слайд 21

SCHEMA API const schema = new Schema(definition, options) schema.methods schema.statics schema.virtual(name, options) schema.pre/post(method, callback) schema.plugin(func, options)

SCHEMA API

const schema = new Schema(definition, options)

schema.methods
schema.statics
schema.virtual(name, options)

schema.pre/post(method, callback)
schema.plugin(func, options)
Слайд 22

SCHEMA DEFINITION type required default unique validate lowercase uppercase trim match enum min max String Number/Date

SCHEMA DEFINITION

type
required
default
unique
validate

lowercase
uppercase
trim
match

enum

min
max

String

Number/Date

Слайд 23

AUTHENTICATION

AUTHENTICATION

Слайд 24

AUTHENTICATION Authentication - is the process of actually confirming truth identity.

AUTHENTICATION

Authentication - is the process of actually confirming truth identity.

Authorization - is the function of specifying access rights to resources related to information security and computer security in general and to access control in particular.
Слайд 25

HTTP Forms One-Time Password(two-factor authentication) API key Token-based AUTHENTICATION METHODS

HTTP
Forms
One-Time Password(two-factor authentication)
API key
Token-based

AUTHENTICATION METHODS

Слайд 26

User Requests Access with Username / Password Application validates credentials Application

User Requests Access with Username / Password
Application validates credentials

Application provides a signed token to the client
Client stores that token and sends it along with every request
Server verifies token and responds with data

HOW TOKEN BASED WORKS

Слайд 27

SWT JWT SAML TOKEN-BASED AUTHENTICATION OAuth OpenID Connect SAML WS-Federation Token formats: Standards:

SWT
JWT
SAML

TOKEN-BASED AUTHENTICATION

OAuth
OpenID Connect
SAML
WS-Federation

Token formats:

Standards:

Слайд 28

PASSPORT.JS

PASSPORT.JS

Слайд 29

PASSPORT Passport is Express-compatible authentication middleware for Node.js. Passport's sole purpose

PASSPORT

Passport is Express-compatible authentication middleware for Node.js.
Passport's sole purpose is to

authenticate requests, which it does through an extensible set of plugins known as strategies. The API is simple: you provide Passport a request to authenticate, and Passport provides hooks for controlling what occurs when authentication succeeds or fails.
Слайд 30

PASSPORT MAIN CONCEPTS Strategies Sessions Middleware

PASSPORT MAIN CONCEPTS

Strategies
Sessions
Middleware

Слайд 31

PASSPORT API passport.initialize / session() passport.use() passport.serializeUser / deserializeUser() passport.authenticate() req.login / logout()

PASSPORT API

passport.initialize / session()
passport.use()
passport.serializeUser / deserializeUser()
passport.authenticate()
req.login

/ logout()
Слайд 32

PASSPORT.JS DEMO

PASSPORT.JS

DEMO