The official Stitchz authentication strategy for Passport.js

What is Passport.js for Node.js? "Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application."

The Stitchz Passport authentication strategy authenticates users with their Social Identity. The strategy setup is simple and requires a 'verify' callback which accepts these credentials and calls 'done' providing a user.

Getting Started

To get started, create a Stitchz application by going to Use your application settings in your strategy configuration below.


Install the npm package for 'passport-stitchz'

$ npm install passport-stitchz


Use 'passport.authenticate()', specifying the 'stitchz' strategy, to authenticate requests. For example, as route middleware in an Express application:'/callback',
    passport.authenticate('stitchz', { failureRedirect: '/login' }),
    function(req, res, next) {
        if (!req.user) {
            throw new Error('user null');


Then add your application's login options by adding the html code below to your login page...

<div id="stitchzsociallogin"></div>

<script src="/Scripts/stitchz.client.js" type="text/javascript"></script>
<script type="text/javascript">
StitchzClient.ready(function (e) {
        ApiKey: 'your ApiKey',
        ReturnUrl: 'http://localhost:3000/callback',
        Height: '280', // optional
        Width: '330', // optional
        MaxHeight: '768', // optional
        MaxWidth: '500', // optional
        AutoResize: true, // optional
        AppURL: '',
        Version: '2',
        HtmlElementIdNameToAddIframeTo: 'stitchzsociallogin'

Passport Strategy

And finally, in your strategy file...

var StitchzStrategy = require('passport-stitchz'),
passport = require('passport');

passport.use(new StitchzStrategy({
        apiKey: 'your ApiKey',
        appSecret: 'your AppSecret',
        appHost: 'your App URL', // i.e.
        redirectUri: 'http://localhost:3000/callback', // your website's callback URL
        version: '2', // optional - default is '1'
         format: 'json' // optional - default is 'xml'
    function(err, resp, done) {
        User.findOneOrCreate({ identifier: resp.profile.identifier },
            function (err, user) {
                if (err) {
                    return done(err);

                if (!user) {
                    return done(null, false, {
                        message: 'Unknown user'

                return done(null, user);


JavaScript, Node.js


To submit bug reports and feature suggestions, or to track changes:


Additional info can be found on the Passport-Stitchz github page or on the Passport-Stitchz npm page.