hunt
Version:
High level nodejs framework build on top of expressjs, mongoose, sequilize, socketio and passportjs
39 lines (35 loc) • 1.47 kB
JavaScript
;
var
storeReferer = require('./storeRefererHelper.js'),
SteamStrategy = require('passport-steam').Strategy;
exports.strategy = function (core) {
return new SteamStrategy({
returnURL: core.config.hostUrl + 'auth/steam/callback',
realm: core.config.hostUrl,
apiKey: core.config.STEAM_API_KEY,
profile: core.config.STEAM_API_KEY || false,
stateless: true, // http://stackoverflow.com/questions/17274447/does-passport-js-require-session-affinity-when-deployed-on-multiple-node-js-inst
passReqToCallback: true
}, function (request, identifier, profile, done) {
/*
console.log('==============');
console.log('identifier=' + identifier);
console.log(profile);
console.log('==============');
identifier=http://steamcommunity.com/openid/id/7617
{ displayName: undefined,
emails: [ { value: undefined } ],
name: { familyName: undefined, givenName: undefined }
*/
profile.provider = 'steam';
profile.id = identifier; //emails usually is empty, because very few people publishes their emails on steam
core.model.User.processOAuthProfile(request, profile, done);
});
};
exports.routes = function (core, router) {
router.get('/steam', storeReferer, core.passport.authenticate('steam'));
router.get('/steam/callback', core.passport.authenticate('steam', {
failureRedirect: '/auth/failure?strategy=steam',
successRedirect: '/auth/success?strategy=steam'
}));
};