var muxrpc = require('muxrpc')
var Serializer = require('pull-serializer')
var auth = require('ssb-domain-auth')
var chan = require('ssb-channel')
var ssb = muxrpc(ssbManifest, false, serialize)()
var localhost = chan.connect(ssb, 'localhost')
localhost.on('connect', function() {
auth.getToken('localhost', function(err, token) {
if (err) return localhost.close(), console.error('Token fetch failed', err)
ssb.auth(token, function(err) {
if (err) return localhost.close(), console.error('Auth failed', err)
ssb.whoami(function(err, user) {
console.log(user)
})
})
})
})
var loginBtn = document.getElementById('loginbtn')
var logoutBtn = document.getElementById('logoutbtn')
loginBtn.onclick = function(e){
e.preventDefault()
auth.openAuthPopup('localhost', {
title: '3rd-party App Auth',
perms: ['whoami']
}, function(err, granted) {
if (granted)
localhost.reconnect()
})
}
logoutBtn.onclick = function(e){
e.preventDefault()
auth.deauth('localhost')
localhost.close()
}
function serialize (stream) {
return Serializer(stream, JSON, {split: '\n\n'})
}
var ssbManifest = {
auth: 'async',
whoami: 'async'
}