passport.use(new AmazonStrategy({
clientID: AMAZON_CLIENT_ID,
clientSecret: AMAZON_CLIENT_SECRET,
},
function(accessToken, refreshToken, profile, done) {
// asynchronous verification, for effect...
console.log("access token is" + accessToken)
console.log("access token is" + profile)
process.nextTick(function () {
console.log("profile is" + profile)
return done(null, profile);
});
}
));
var app = express.createServer(options).listen(443);
//var httpsserver = https.createServer(options, app)
// configure Express
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.logger());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.get('/', function(req, res){
res.render('index', { user: req.user });
});
app.get('/account', ensureAuthenticated, function(req, res){
res.render('account', { user: req.user });
});
app.get('/login', function(req, res){
res.render('login', { user: req.user });
});
app.get('/auth/amazon',
passport.authenticate('amazon', { scope: ['profile', 'postal_code'] }),
function(req, res){
// The request will be redirected to Amazon for authentication, so this
// function will not be called.
})
app.get('/auth/amazon/callback',
passport.authenticate('amazon', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});
app.get('/logout', function(req, res){
req.logout();
res.redirect('/');
});
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) { return next(); }
res.redirect('/login')
}