
Created by Maksym Tarasenko
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function (username, password, done) {
User.findOne({username: username}, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {message: 'Incorrect username.'});
}
if (!user.validPassword(password)) {
return done(null, false, {message: 'Incorrect password.'});
}
return done(null, user);
});
}
app.use(passport.initialize());
passport.serializeUser(function (user, done) {
done(null, user.username);
});
passport.deserializeUser(function (username, done) {
User.findOne({username: username},
function (err, user) {return done(err, user);});
})
app.post('/login', passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login'
}));
var passport = require('passport')
, OpenIDStrategy = require('passport-openid').Strategy;
passport.use(new OpenIDStrategy({
returnURL: 'http://www.example.com/auth/openid/return',
realm: 'http://www.example.com/'
},
function(identifier, done) {
User.findOrCreate({ openId: identifier }, function(err, user) {
done(err, user);
});
}
));
// Accept the OpenID identifier and redirect the user to their OpenID
// provider for authentication. When complete, the provider will redirect
// the user back to the application at:
// /auth/openid/return
app.post('/auth/openid', passport.authenticate('openid'));
// The OpenID provider has redirected the user back to the application.
// Finish the authentication process by verifying the assertion. If valid,
// the user will be logged in. Otherwise, authentication has failed.
app.get('/auth/openid/return',
passport.authenticate('openid', { successRedirect: '/',
failureRedirect: '/login' }));
var passport = require('passport')
, OAuthStrategy = require('passport-oauth').OAuthStrategy;
passport.use('provider', new OAuthStrategy({
requestTokenURL: 'https://www.provider.com/oauth/request_token',
accessTokenURL: 'https://www.provider.com/oauth/access_token',
userAuthorizationURL: 'https://www.provider.com/oauth/authorize',
consumerKey: '123-456-789',
consumerSecret: 'shhh-its-a-secret'
callbackURL: 'https://www.example.com/auth/provider/callback'
},
function(token, tokenSecret, profile, done) {
User.findOrCreate(..., function(err, user) {
done(err, user);
});
}
));
var passport = require('passport')
, OAuth2Strategy = require('passport-oauth').OAuth2Strategy;
passport.use('provider', new OAuth2Strategy({
authorizationURL: 'https://www.provider.com/oauth2/authorize',
tokenURL: 'https://www.provider.com/oauth2/token',
clientID: '123-456-789',
clientSecret: 'shhh-its-a-secret'
callbackURL: 'https://www.example.com/auth/provider/callback'
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate(..., function(err, user) {
done(err, user);
});
}
));
// only one scope
app.get('/auth/provider',
passport.authenticate('provider', { scope: 'email' })
);
// multiple scopes
app.get('/auth/provider',
passport.authenticate('provider', { scope: ['email', 'sms'] })
);
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
socket.emit('greet', {
hello: 'world'
});
socket.on('message', function (from, msg) {
console.log('message by ', from, ' saying ', msg);
});
socket.on('disconnect', function () {
socket.emit('user disconnected');
});
});
<script src "/socket.io/socket.io.js"></script>
<script>
var socket = io('http://localhost:8080');
socket.on('greet', function (data) {
console.log(data);
socket.emit('message', 'user', 'hello');
});
</script>
var io = require('socket.io')(8080);
var chat = io
.of('/chat')
.on('connection', function (socket) {
socket.emit('a message', {
that: 'only'
, '/chat': 'will get'
});
chat.emit('a message', {
everyone: 'in'
, '/chat': 'will get'
});
});
var news = io
.of('/news')
.on('connection', function (socket) {
socket.emit('item', { news: 'item' });
});
var chat = io.connect('http://localhost/chat')
, news = io.connect('http://localhost/news');
chat.on('connect', function () {
chat.emit('hi!');
});
news.on('news', function () {
news.emit('woot');
});
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
socket.on('call me', function (name, fn) {
fn('holla');
});
});
<script>
var socket = io();
socket.on('connect', function () {
socket.emit('call me', 'andrew', function (data) {// data will be 'holla'
});
});
</script>
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
socket.broadcast.emit('new user connected');
});
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
var tweets = setInterval(function () {
getCatsTweets(function (tweet) {
socket.volatile.emit('cats tweet', tweet);
});
}, 100);
socket.on('disconnect', function () {
clearInterval(tweets);
});
});