Neurologically Paralyzing Mouseovers

    asteroid-oauth

    1.0.23 • Public • Published

    asteroid-oauth-mixin

    An OAuth mixin for Asteroid. You can use an available provider (check the list of available provider) or you can add a custom provider.

    Available provider

    • Google
    • Facebook
    • Twitter

    Install

    npm install asteroid-oauth
    

    Development environment setup

    After cloning the repository, install npm dependencies with npm install. Run npm test to run unit tests, or npm run dev to have mocha re-run your tests when source or test files change.

    Example usage

    import {createClass} from "asteroid";
    import * as asteroidOauthMixin from "asteroid-oauth";
     
    const Asteroid = createClass([asteroidOauthMixin]);
     
    const asteroid = new Asteroid({platform, endpoint});
     
    /*
    *   You need to define a `getServiceConfig` method (either in a mixin or on the
    *   instance itself) which returns a plain object containing the configuration
    *   for the specified provider. Such configurations are stored in the
    *   `meteor_accounts_loginServiceConfiguration` collection, which the oauth
    *   mixin automatically retrieves by subscribing to
    *   `meteor.loginServiceConfiguration`, a subscription published - by default -
    *   by the meteor server.
    *   A naive implementation could be the following:
    */
    asteroid.ddp.on("added", ({collection, id, fields}) => {
        if (collection === "meteor_accounts_loginServiceConfiguration") {
            asteroid.loginServiceConfiguration = {
                ...asteroid.loginServiceConfiguration,
                [id]: {
                    _id: id,
                    ...fields
                }
            };
        }
    });
    asteroid.getServiceConfig = providerName => {
        return this.loginServiceConfiguration[providerName];
    }
     
    /*
    *   Somewhere in your code
    */
     
    asteroid.loginWith("facebook")
        .then(() => console.log("login successful"))
        .catch(() => console.log("error logging in"))
     

    Example usage with asteroid-immutable-collections-mixin:

    import {createClass} from "asteroid";
    import * as asteroidOauthMixin from "asteroid-oauth";
    import * as asteroidImmutableMixin from "asteroid-immutable-collections-mixin";
     
    const Asteroid = createClass([asteroidImmutableMixin, asteroidOauthMixin]);
     
    const asteroid = new Asteroid({platform, endpoint});
     
    /*
    *   Somewhere in your code
    */
     
    asteroid.loginWith("facebook")
        .then(() => console.log("login successful"))
        .catch(() => console.log("error logging in"))
     

    API

    loginWith(providerName, scope)

    This is the method used to login.

    Arguments

    • providerName string required: the provider name with whom you want to login with Oauth.

    • scope string optional: you might need to request access to APIs, depending on the level of access you need. For google provider, the default is set to openid email.

    Returns

    A promise to the method return value (the promise is rejected if the method throws).

    registerOauthProvider(provider)

    This is used to set a custom provider.

    Arguments

    • provider string required: the provider name with whom you want to add to the list of available provider.

    Returns

    Nothing.

    Install

    npm i asteroid-oauth

    DownloadsWeekly Downloads

    1

    Version

    1.0.23

    License

    MIT

    Unpacked Size

    81.2 kB

    Total Files

    28

    Last publish

    Collaborators

    • titeya