node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »

feathers-authentication-popups-github

feathers-authentication-popups-github

Build Status Code Climate Test Coverage Dependency Status Download Status

Server plugin for implementing OAuth2 popup-based GitHub logins

Installation

npm install feathers-authentication-popups-github --save

Documentation

Please refer to the feathers-authentication-popups-github documentation for more details.

Complete Example

Here's an example of a Feathers server that uses feathers-authentication-popups-github.

const feathers = require('feathers');
const rest = require('feathers-rest');
const hooks = require('feathers-hooks');
const bodyParser = require('body-parser');
const errorHandler = require('feathers-errors/handler');
const auth = require('feathers-authentication');
const githubAuth = require('feathers-authentication-popups-github');
 
// Initialize the application 
const app = feathers()
  .configure(rest())
  .configure(hooks())
  // Needed for parsing bodies (login) 
  .use(bodyParser.json())
  .use(bodyParser.urlencoded({ extended: true }))
  // Initialize your feathers plugin 
  .use(errorHandler());
 
// First you need a config 
var config = {
  "host": "localhost",
  "port": 3030,
  "public": "../public/",
  "auth": {
    "cookie": {
      "name": "feathers-jwt",
      "enabled": true,
      "secure": false
    },
    "token": {
      "secret": "your token secret here"
    },
    "jwt": {
      "issuer": "feathers",
      "algorithm": "HS256",
      "expiresIn": "1d"
    },
    "user": {
      "service": "/api/users",
      "idField": "_id",
      "usernameField": "email", 
      "passwordField": "password" 
    },
    "local": {},
    "github": {
      "provider": "github",
      "service": "auth/github",
      "successRedirect": "/auth/success",
      "callbackURL": "/auth/github/callback",
      "clientID": "your client id from GitHub",
      "clientSecret": "your client secret from GitHub",
      "permissions": {
        "scope": []
      }
    }
  }
};
 
app.configure(auth())
  // Enable GitHub popup-based OAuth. 
  .configure(githubAuth(config.github, config.cookie));
 
 
app.listen(3030);
 
console.log('Feathers app started on 127.0.0.1:3030');

License

Copyright (c) 2016

Licensed under the MIT license.