Authentication plugin with oauth services
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
lib
test
.eslintrc.json
.gitignore
.jshintrc
.travis.yml
LICENSE.md
README.md
manifest.json
package-lock.json
package.json

README.md

Build Status

Plugin Passport OAUTH Authentication

This plugin provides an authentication with passportjs strategies.

Configuration

To edit the configuration of a plugin see custom plugin configuration.

List of available configurations:

Name Default value Type Description
strategies {} Object List of the providers you want to use with passport
credentials {} Object Credentials provided by the provider
persist {} Object Attributes you want to persist if the user doesn't exist
scope [] Array List of fields in the OAUTH 2.0 scope of access
identifierAttribute String Attribute from the profile of the provider to use as Id if you want to persist the user in Kuzzle
defaultProfile "default" Array Profiles of the new persisted user
kuzzleAttributesMapping ```` Object Mapping of attributes to persist in the user persisted in Kuzzle
passportStrategy ````  String Strategy name for passport (eg. google-oauth20 while the name of the provider is google)

Here is an example of a configuration:

{
    "strategies": {
        "facebook": {
            "passportStrategy": "facebook",
            "credentials": {
                "clientID": "<your-client-id>",
                "clientSecret": "<your-client-secret>",
                "callbackURL": "http://localhost:8080/_login/facebook",
                "profileFields": ["id", "name", "picture", "email", "gender"]
            },
            "persist": [
                "login",
                "avatar_url",
                "name",
                "email"
            ],
            "scope": [
                "email",
                "public_profile"
            ],
            "kuzzleAttributesMapping": {
              "userMail": "email" // will store the attribute "email" as "userEmail" into Kuzzle
            },
            "identifierAttribute": "id"
        }
    },
    "defaultProfiles": [
        "default"
    ]
}

Usage

The easiest way to implement an oauth authentication in your front-end is to use the sdk login oauth popup module

See Kuzzle API Documentation for more details about Kuzzle authentication mechanism.

How to create a plugin

See Kuzzle documentation about plugin for more information about how to create your own plugin.