plug-login
Logs in to plug.dj.
Last updated 2 years ago by goto-bus-stop .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install plug-login 
SYNC missed versions from official npm registry.

plug-login

Logs into plug.dj using a email address and password.

Travis NPM

Usage

const plugLogin = require('plug-login')

plugLogin('my-plug-email@example.com', 'hunter2')
  .then(rejoice)
  .catch(() => {
    // Login failed
  })

API

plugLogin(email, password, opts={})

plugLogin.user(email, password, opts={})

Logs in to plug.dj using the given email address and password. You can optionally pass options in the third parameter.

Pass { authToken: true } in the options opts to also generate a WebSocket authentication token. (See below.) Other properties are passed through to node-fetch.

Returns a promise. The promise resolves with an object with the properties, { body, session, cookie, token }, where body is plug.dj's login response, session is the session token, cookie is a cookie string with the session token filled in, and token is the auth token (if you asked for one). You can then use the cookie string for Cookie: headers in subsequent requests so plug.dj will recognise you, and you can use the auth token to set up a connection to the plug.dj WebSocket server.

Using the cookie string with the node-fetch library:

const fetch = require('node-fetch')
async function main () {
  const result = await plugLogin('fetch@example.com', 'fetch-is-small-and-good')
  const response = await fetch('https://plug.dj/_/users/me', {
    headers: { cookie: result.cookie }
  })
  const body = await response.json()
  console.log('logged in as', body.data[0])
})

Using the cookie string with the request library:

const request = require('request')
let jar = request.jar()
plugLogin('admin@plug.dj', 'hunter3').then((result) => {
  // Store it in a jar for the correct domain.
  jar.setCookie(result.cookie, 'https://plug.dj/')
  request('https://plug.dj/_/users/me', { jar: jar, json: true }, (err, response) => {
    console.log('logged in as', response.body.data[0])
  })
})

plugLogin(opts={})

plugLogin.guest(opts={})

Gets a plug.dj session cookie and, optionally, WebSocket authentication token as a guest user.

opts takes the same options as user-style plugLogin().

Returns a promise that resolves with an object with the properties, { session, cookie, token }. See plugLogin.user for what those properties mean.

// "logging in" as a guest
plugLogin.guest({ authToken: true }).then((result) => {
  // result.token contains an authentication token for the plug.dj WebSocket.
  require('plug-socket')(result.token)
})

License

MIT

Current Tags

  • 2.1.0                                ...           latest (2 years ago)

15 Versions

  • 2.1.0                                ...           2 years ago
  • 2.0.0                                ...           2 years ago
  • 1.2.0                                ...           3 years ago
  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.2                                ...           4 years ago
  • 1.0.1                                ...           4 years ago
  • 1.0.0                                ...           4 years ago
  • 0.4.0                                ...           5 years ago
  • 0.3.1                                ...           5 years ago
  • 0.3.0                                ...           5 years ago
  • 0.2.0                                ...           5 years ago
  • 0.1.1                                ...           5 years ago
  • 0.1.0                                ...           5 years ago
  • 0.0.1                                ...           5 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (1)
Dev Dependencies (9)

Copyright 2014 - 2017 © taobao.org |