began internal initialization API
This commit is contained in:
parent
44bfc02fa1
commit
1cae332c9c
|
@ -5,9 +5,9 @@
|
||||||
</head>
|
</head>
|
||||||
<body class="fade" ng-class="[ 'in' ]">
|
<body class="fade" ng-class="[ 'in' ]">
|
||||||
|
|
||||||
Do admin stuff:
|
|
||||||
|
|
||||||
<div ng-controller="LoginController as vm" ng-init="vm.setSimple()">
|
<div ng-controller="LoginController as vm" ng-init="vm.setSimple()">
|
||||||
|
<h1 ng-if="!vm.authnUpdated">Initializing... {{vm.hello}}</h1>
|
||||||
|
<div ng-if="!vm.authnUpdated">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-link"
|
class="btn btn-link"
|
||||||
|
@ -32,8 +32,10 @@
|
||||||
ng-click="vm.authenticate()"
|
ng-click="vm.authenticate()"
|
||||||
>Login</button>
|
>Login</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Show Device Name</li>
|
||||||
<li>Login to Daplie</li>
|
<li>Login to Daplie</li>
|
||||||
<li>Show domains (or ask purchase)</li>
|
<li>Show domains (or ask purchase)</li>
|
||||||
<li>Tunnel On</li>
|
<li>Tunnel On</li>
|
||||||
|
|
|
@ -4,8 +4,12 @@ angular.module('com.daplie.cloud', [ 'org.oauth3' ])
|
||||||
auth.setProvider('oauth3.org');
|
auth.setProvider('oauth3.org');
|
||||||
return auth;
|
return auth;
|
||||||
} ])
|
} ])
|
||||||
.controller('LoginController', [ '$timeout', 'oauth3', function ($timeout, oauth3) {
|
.controller('LoginController', [ '$scope', '$timeout', 'oauth3', function ($scope, $timeout, oauth3) {
|
||||||
var vm = this;
|
var vm = this;
|
||||||
|
var OAUTH3 = window.OAUTH3;
|
||||||
|
|
||||||
|
vm.hello = 'Hello!';
|
||||||
|
vm.clientUri = OAUTH3.clientUri(window.location);
|
||||||
|
|
||||||
vm.setSimple = function () {
|
vm.setSimple = function () {
|
||||||
vm.advanced = false;
|
vm.advanced = false;
|
||||||
|
@ -35,15 +39,69 @@ angular.module('com.daplie.cloud', [ 'org.oauth3' ])
|
||||||
};
|
};
|
||||||
|
|
||||||
vm.authenticate = function () {
|
vm.authenticate = function () {
|
||||||
|
// TODO authorization redirect /api/org.oauth3.consumer/authorization_redirect/:provider_uri
|
||||||
|
|
||||||
return oauth3.authenticate().then(function (session) {
|
return oauth3.authenticate().then(function (session) {
|
||||||
console.info("Authorized Session", session);
|
console.info("Authorized Session", session);
|
||||||
|
|
||||||
return oauth3.api('domains.list').then(function (domains) {
|
return oauth3.api('domains.list').then(function (domains) {
|
||||||
console.info("domains owned", domains);
|
console.info("domains owned", domains);
|
||||||
|
vm.domains = domains;
|
||||||
|
|
||||||
|
return OAUTH3.request({
|
||||||
|
method: 'POST'
|
||||||
|
, url: 'https://' + vm.clientUri + '/api/com.daplie.caddy/init'
|
||||||
|
, session: session
|
||||||
|
, data: {
|
||||||
|
access_token: session.access_token
|
||||||
|
, refresh_token: session.refresh_token
|
||||||
|
, expires_in: session.expires_in
|
||||||
|
, scope: session.scope
|
||||||
|
, provider_uri: OAUTH3.uri.normalize(session.provider_uri)
|
||||||
|
, client_uri: vm.clientUri
|
||||||
|
, domains: domains.map(function (d) {
|
||||||
|
return {
|
||||||
|
id: d.id
|
||||||
|
, sub: d.sub
|
||||||
|
, sld: d.sld
|
||||||
|
, tld: d.tld
|
||||||
|
};
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).then(function (resp) {
|
||||||
|
console.info('Initialized Goldilocks', resp);
|
||||||
|
return resp;
|
||||||
|
}, function (err) {
|
||||||
|
console.error(err);
|
||||||
|
window.alert("Initialization failed:" + err.message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}, function (err) {
|
||||||
|
console.error(err);
|
||||||
|
window.alert("Authentication failed:" + err.message);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
console.log('OAUTH3.PromiseA', OAUTH3.PromiseA);
|
||||||
|
return oauth3.setProvider('oauth3.org').then(function () {
|
||||||
|
return oauth3.authenticate({ windowType: 'background' }).then(function () {
|
||||||
|
console.log('HELLO!!');
|
||||||
|
//vm.authnUpdated = Date.now();
|
||||||
|
vm.hasSession = true;
|
||||||
|
}, function () {
|
||||||
|
console.log('GOODBYE!!');
|
||||||
|
//vm.authnUpdated = Date.now();
|
||||||
|
vm.hasSession = false;
|
||||||
|
$timeout(function () {
|
||||||
|
console.log('GOODBYE!!');
|
||||||
|
vm.hello = 'Nope!';
|
||||||
|
}, 1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//*/
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
/*
|
/*
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
|
@ -12,6 +12,7 @@ module.exports = function (opts) {
|
||||||
var pathsMap = {};
|
var pathsMap = {};
|
||||||
var content = opts.content;
|
var content = opts.content;
|
||||||
var server;
|
var server;
|
||||||
|
var serveInit;
|
||||||
|
|
||||||
function addServer(hostname) {
|
function addServer(hostname) {
|
||||||
|
|
||||||
|
@ -71,6 +72,14 @@ module.exports = function (opts) {
|
||||||
addServer(opts.sites[0].name);
|
addServer(opts.sites[0].name);
|
||||||
|
|
||||||
return function (req, res) {
|
return function (req, res) {
|
||||||
|
if ('/api/com.daplie.caddy/init' === req.url) {
|
||||||
|
if (!serveInit) {
|
||||||
|
serveInit = require('../packages/apis/com.daplie.caddy').create(opts);
|
||||||
|
}
|
||||||
|
serveInit(req, res);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (content && '/' === req.url) {
|
if (content && '/' === req.url) {
|
||||||
// res.setHeader('Content-Type', 'application/octet-stream');
|
// res.setHeader('Content-Type', 'application/octet-stream');
|
||||||
res.end(content);
|
res.end(content);
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
"homepage": "https://git.daplie.com/Daplie/goldilocks.js#readme",
|
"homepage": "https://git.daplie.com/Daplie/goldilocks.js#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bluebird": "^3.4.6",
|
"bluebird": "^3.4.6",
|
||||||
|
"body-parser": "git+https://github.com/expressjs/body-parser.git#1.16.1",
|
||||||
"daplie-tunnel": "git+https://git.daplie.com/Daplie/daplie-cli-tunnel.git#master",
|
"daplie-tunnel": "git+https://git.daplie.com/Daplie/daplie-cli-tunnel.git#master",
|
||||||
"ddns-cli": "git+https://git.daplie.com/Daplie/node-ddns-client.git#master",
|
"ddns-cli": "git+https://git.daplie.com/Daplie/node-ddns-client.git#master",
|
||||||
"finalhandler": "^0.4.0",
|
"finalhandler": "^0.4.0",
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports.create = function (opts) {
|
||||||
|
var bodyParser = require('body-parser');
|
||||||
|
var jsonParser = bodyParser.json({
|
||||||
|
inflate: true, limit: '100kb', reviver: null, strict: true /* type, verify */
|
||||||
|
});
|
||||||
|
|
||||||
|
return function (req, res) {
|
||||||
|
jsonParser(req, res, function () {
|
||||||
|
|
||||||
|
console.log('req.body', req.body);
|
||||||
|
|
||||||
|
res.setHeader('Content-Type', 'application/json;');
|
||||||
|
res.end(JSON.stringify({ error: { message: "Not Implemented", code: "E_NO_IMPL" } }));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
|
@ -1 +1 @@
|
||||||
Subproject commit 1e0d129b8a6748f635b6f6985d7dae2ece747e55
|
Subproject commit eff1fd11272472e8f6d03ac8b897a9853810672e
|
Loading…
Reference in New Issue