tent-auth
Version:
Tent app auth flow implementation.
54 lines (43 loc) • 1.26 kB
JavaScript
var auth = require('..')
var discover = require('tent-discover')
var readline = require('readline')
// install `tent-discover` if you haven't done it already!
var entity = process.argv[2]
if(!entity) {
console.error('usage: node authCmdline http://entity.com')
process.exit(1)
}
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
var app = {
name: 'tent-auth Test App',
url: 'http://testtestappapp.com',
redirect_uri: 'http://aeppdadaepp.net/redirect',
types: {
read: [ 'https://tent.io/types/status/v0' ],
write: [ 'https://tent.io/types/status/v0' ]
}
}
var metaStore = {}
var credsStore = {}
discover(entity, function(err, meta) {
if(err) return console.error(err)
metaStore = meta
auth.registerApp(meta.post.content, app, function(err, tempCreds, appID) {
if(err) return console.error(err)
credsStore = tempCreds
var url = auth.generateURL(meta.post.content, appID)
console.log('Visit this url and paste the code back in:\n%s', url.url)
rl.question('Code:', tradeCode)
})
})
function tradeCode(code) {
auth.tradeCode(metaStore.post.content, credsStore, code,
function(err, permaCreds) {
if(err) return console.error(err)
console.log(permaCreds)
process.exit(0)
})
}