1.0.6 • Published 1 year ago

passport-dropbox-auth v1.0.6

Weekly downloads
42
License
MIT
Repository
github
Last release
1 year ago

CircleCI

passport-dropbox-auth

Simple Drobpox strategy for passport that supports both personal Dropbox and Dropbox for Business (utilizing the Docker API for user information).

Installation

npm install passport-dropbox-auth

Usage

Aside from the standard required fields, this module allows to optionally have passport include the express request object into the verification function (through the first variable)

Parameters:

  • clientID - Dropbox API Key
  • clientSecret - Dropbox API Secret
  • callbackURL - Oauth2 callback url (must match the callback in your Docker app)

Optional Parameters

  • passReqToCallback - boolean to tell passport to send the request in the first parameter of the verification callback. Defaults to false

Examples

With request

const DropboxStrategy = require('passport-dropbox-auth').Strategy;
const strategy = new DropboxStrategy(
{
    clientID: '<clientid>',
    clientSecret: '<clientSecret>',
    callbackURL: '<callbackURL>',
    passReqToCallback: true
},
async (request, accessToken, refreshToken, profile, done) => {
    done(null, <userId>);
}

Without request

const DropboxStrategy = require('passport-dropbox-auth').Strategy;
const strategy = new DropboxStrategy(
{
    clientID: '<clientid>',
    clientSecret: '<clientSecret>',
    callbackURL: '<callbackURL>',
    passReqToCallback: false //or omit this entirely
},
async (accessToken, refreshToken, profile, done) => {
    done(null, <userId>);
}

Profile Responses

Docker for Business

{
    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
    "name": {
        "given_name": "Franz",
        "surname": "Ferdinand",
        "familiar_name": "Franz",
        "display_name": "Franz Ferdinand (Personal)",
        "abbreviated_name": "FF"
    },
    "email": "franz@dropbox.com",
    "email_verified": true,
    "disabled": false,
    "locale": "en",
    "referral_link": "https://db.tt/ZITNuhtI",
    "is_paired": true,
    "account_type": {
        ".tag": "business"
    },
    "root_info": {
        ".tag": "user",
        "root_namespace_id": "3235641",
        "home_namespace_id": "3235641"
    },
    "country": "US",
    "team": {
        "id": "dbtid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
        "name": "Acme, Inc.",
        "sharing_policies": {
            "shared_folder_member_policy": {
                ".tag": "team"
            },
            "shared_folder_join_policy": {
                ".tag": "from_anyone"
            },
            "shared_link_create_policy": {
                ".tag": "team_only"
            }
        },
        "office_addin_policy": {
            ".tag": "disabled"
        }
    },
    "team_member_id": "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
}

Docker Personal

{
    "account_id": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
    "name": {
        "given_name": "Franz",
        "surname": "Ferdinand",
        "familiar_name": "Franz",
        "display_name": "Franz Ferdinand (Personal)",
        "abbreviated_name": "FF"
    },
    "email": "franz@gmail.com",
    "email_verified": false,
    "disabled": false,
    "locale": "en",
    "referral_link": "https://db.tt/ZITNuhtI",
    "is_paired": false,
    "account_type": {
        ".tag": "basic"
    },
    "root_info": {
        ".tag": "user",
        "root_namespace_id": "3235641",
        "home_namespace_id": "3235641"
    },
    "profile_photo_url": "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102\u0026size=128x128",
    "country": "US"
}
1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

2 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago