Ghost/ghost/members-ssr
Fabien O'Carroll 2e40e253d6 Implemented MVP
2019-04-16 12:22:55 +02:00
..
test Ran slimer new members-ssr 2019-04-16 12:22:55 +02:00
.eslintrc.js Ran slimer new members-ssr 2019-04-16 12:22:55 +02:00
index.js Implemented MVP 2019-04-16 12:22:55 +02:00
LICENSE Ran slimer new members-ssr 2019-04-16 12:22:55 +02:00
package.json Ran yarn add --dev keypair 2019-04-16 12:22:55 +02:00
README.md Added example usage to README 2019-04-16 12:22:55 +02:00

Members Ssr

Install

npm install members-ssr --save

or

yarn add members-ssr

Usage

const MembersSSR = require('./');

const {
    exchangeTokenForSession,
    getMemberDataFromSession
} = MembersSSR({
    cookieMaxAge: 1000 * 60 * 60 * 24 * 184, // 184 days max cookie age (default)
    cookieSecure: true, // Secure cookie (default)
    cookieName: 'members-ssr', // Name of cookie (default)
    cookiePath: '/', // Path of cookie (default)
    cookieKeys: 'some-coole-secret', // Key to sign cookie with
    membersApi: membersApiInstance // Used to fetch data and verify tokens
});

require('http').createServer((req, res) => {
    if (req.method.toLowerCase() === 'post') {
        exchangeTokenForSession(req, res).then(() => {
            res.writeHead(200);
            res.end();
        }).catch((err) => {
            res.writeHead(err.code);
            res.end(err.message);
        });
    } else {
        getMemberDataFromSession(req, res).then((member) => {
            res.writeHead(200, {
                'Content-Type': 'application/json'
            });
            res.end(JSON.stringify(member));
        }).catch((err) => {
            res.writeHead(err.code);
            res.end(err.message);
        });
    }
}).listen(3665);

Develop

This is a mono repository, managed with lerna.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Run

  • yarn dev

Test

  • yarn lint run just eslint
  • yarn test run lint and tests

Copyright & License

Copyright (c) 2019 Ghost Foundation - Released under the MIT license.