justlogin.xyz-client
v2.0.2
Published
An example client for the just-login-core
Downloads
4
Readme
justlogin.xyz-client
Example
Create a server:
var db = require('level')('./databases/core')
var core = require('just-login-core')(db)
var sessionState = require('just-login-session-state')(core, db)
var server = require('http').createServer()
var sock = require('justlogin.xyz-client')(core, sessionState)
sock.install(server, '/dnode-example')
Create a client:
var justLoginClient = require('justlogin.xyz-client')
var client = justLoginClient('/dnode-example', function (err, newApi, sessionId) {
if (!err) {
//do stuff with the api
}
})
client.on('session', function (session) {
if (session.continued) {
console.log('Reusing my session:', session.sessionId)
} else {
console.log('New session:', session.sessionId)
}
})
client.on('authenticated', function (email) {
console.log(email + ' just got logged in!')
})
API
var client = require('justlogin.xyz-client')
Server Side
var sock = client(core, sessionState)
core
is ajust-login-core
object.sessionState
is ajust-login-session-state
object.- Returns a
sock
object.
var sock = client(core, sessionState)
sock.install(http.createServer(), '/dnode')
Client Side
var emitter = client(dnodeEndpoint, cb)
This function handles remembering the session id in the browser's local storage.
dnodeEndpoint
is a string for the endpoint that dnode uses for communication. The string must start with a forward slash/
.cb
is a function that has the following arguments:err
is eithernull
or anError
object.newApi
is an object with methods fromjust-login-core
andjust-login-session-state
, but with thesessionId
pre-bound:beginAuthentication(contactAddress, [cb])
fromjust-login-core
isAuthenticated(cb)
fromjust-login-session-state
unauthenticate([cb])
fromjust-login-session-state
sessionExists(cb)
fromjust-login-session-state
sessionId
is the new (or previous, when applicable) session id.
- Returns
emitter
which can emit the following events:session
is emitted when a session is initiated. An object is emitted with the following properties:sessionId
The id for the current session. E.g.3879533a-1f34-11e4-a8de-c92c3319c4e0
continued
Whether or not the session was continued from a previous session. E.g.true
,false
authenticated
is emitted when the user gets authenticated.email
is the email of the user who logged in. E.g.[email protected]
emitter.on('session', function (data) {
console.log(data.continued) //boolean for if the session was continued or newly created
console.log(data.sessionId) //string for the session id
})
emitter.on('authenticated', function (whom) {
t.ok(whom, 'got authenticated')
t.equal(whom, fakeEmailAddress, 'correct email (new)')
})
Install
Install with npm
npm install justlogin.xyz-client