move js to own file
This commit is contained in:
parent
40ab6a4bb8
commit
8fe1f4d82a
|
@ -21,119 +21,6 @@
|
|||
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
||||
|
||||
<script src="assets/oauth3.org/oauth3.core.js"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
var OAUTH3 = window.OAUTH3;
|
||||
var oauth3 = OAUTH3.create({
|
||||
host: window.location.host
|
||||
, pathname: window.location.pathname.replace(/\/[^\/]*$/, '/')
|
||||
});
|
||||
var $ = function () { return document.querySelector.apply(document, arguments); }
|
||||
|
||||
function onChangeProvider(providerUri) {
|
||||
// example https://oauth3.org
|
||||
return oauth3.setIdentityProvider(providerUri);
|
||||
}
|
||||
|
||||
// This opens up the login window for the specified provider
|
||||
//
|
||||
function onClickLogin(ev) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
|
||||
var email = $('.js-auth-subject').value;
|
||||
|
||||
// TODO check subject for provider viability
|
||||
return oauth3.authenticate({
|
||||
subject: email
|
||||
, scope: 'email@oauth3.org'
|
||||
}).then(function (session) {
|
||||
|
||||
console.info('Authentication was Successful:');
|
||||
console.log(session);
|
||||
|
||||
// You can use the PPID (or preferably a hash of it) as the login for your app
|
||||
// (it securely functions as both username and password which is known only by your app)
|
||||
// If you use a hash of it as an ID, you can also use the PPID itself as a decryption key
|
||||
//
|
||||
console.info('Secure PPID (aka subject):', session.token.sub);
|
||||
|
||||
function listStuff(data) {
|
||||
//window.alert("TODO: show authorized devices, domains, and connectivity information");
|
||||
var app6 = new Vue({
|
||||
el: '.v-app',
|
||||
data: {
|
||||
domains: data.domains
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.oauth3.org/api/issuer@oauth3.org/jwks/:sub/:kid.json'
|
||||
.replace(/:sub/g, session.token.sub)
|
||||
.replace(/:kid/g, session.token.iss)
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
console.info("Public Key:");
|
||||
console.log(resp.data);
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.oauth3.org/api/issuer@oauth3.org/acl/profile'
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
|
||||
console.info("Inspect Token:");
|
||||
console.log(resp.data);
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.' + location.hostname + '/api/telebit.cloud/account'
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
|
||||
console.info("Telebit Account:");
|
||||
console.log(resp.data);
|
||||
|
||||
if (resp.data && resp.data.domains) {
|
||||
listStuff(resp.data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (1 === resp.data.accounts.length) {
|
||||
listStuff(resp);
|
||||
} else if (0 === resp.data.accounts.length) {
|
||||
return oauth3.request({
|
||||
url: 'https://api.' + location.hostname + 'api/telebit.cloud/account'
|
||||
, method: 'POST'
|
||||
, session: session
|
||||
, body: {
|
||||
email: email
|
||||
}
|
||||
}).then(function (resp) {
|
||||
listStuff(resp);
|
||||
});
|
||||
} if (resp.data.accounts.length > 2) {
|
||||
window.alert("Multiple accounts.");
|
||||
} else {
|
||||
window.alert("Bad response.");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}, function (err) {
|
||||
console.error('Authentication Failed:');
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
$('body form.js-auth-form').addEventListener('submit', onClickLogin);
|
||||
onChangeProvider('oauth3.org');
|
||||
}());
|
||||
</script>
|
||||
<script src="js/account.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
(function () {
|
||||
'use strict';
|
||||
var OAUTH3 = window.OAUTH3;
|
||||
var oauth3 = OAUTH3.create({
|
||||
host: window.location.host
|
||||
, pathname: window.location.pathname.replace(/\/[^\/]*$/, '/')
|
||||
});
|
||||
var $ = function () { return document.querySelector.apply(document, arguments); }
|
||||
|
||||
function onChangeProvider(providerUri) {
|
||||
// example https://oauth3.org
|
||||
return oauth3.setIdentityProvider(providerUri);
|
||||
}
|
||||
|
||||
// This opens up the login window for the specified provider
|
||||
//
|
||||
function onClickLogin(ev) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
|
||||
var email = $('.js-auth-subject').value;
|
||||
|
||||
// TODO check subject for provider viability
|
||||
return oauth3.authenticate({
|
||||
subject: email
|
||||
, scope: 'email@oauth3.org'
|
||||
}).then(function (session) {
|
||||
|
||||
console.info('Authentication was Successful:');
|
||||
console.log(session);
|
||||
|
||||
// You can use the PPID (or preferably a hash of it) as the login for your app
|
||||
// (it securely functions as both username and password which is known only by your app)
|
||||
// If you use a hash of it as an ID, you can also use the PPID itself as a decryption key
|
||||
//
|
||||
console.info('Secure PPID (aka subject):', session.token.sub);
|
||||
|
||||
function listStuff(data) {
|
||||
//window.alert("TODO: show authorized devices, domains, and connectivity information");
|
||||
var app6 = new Vue({
|
||||
el: '.v-app',
|
||||
data: {
|
||||
domains: data.domains
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.oauth3.org/api/issuer@oauth3.org/jwks/:sub/:kid.json'
|
||||
.replace(/:sub/g, session.token.sub)
|
||||
.replace(/:kid/g, session.token.iss)
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
console.info("Public Key:");
|
||||
console.log(resp.data);
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.oauth3.org/api/issuer@oauth3.org/acl/profile'
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
|
||||
console.info("Inspect Token:");
|
||||
console.log(resp.data);
|
||||
|
||||
return oauth3.request({
|
||||
url: 'https://api.' + location.hostname + '/api/telebit.cloud/account'
|
||||
, session: session
|
||||
}).then(function (resp) {
|
||||
|
||||
console.info("Telebit Account:");
|
||||
console.log(resp.data);
|
||||
|
||||
if (resp.data && resp.data.domains) {
|
||||
listStuff(resp.data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (1 === resp.data.accounts.length) {
|
||||
listStuff(resp);
|
||||
} else if (0 === resp.data.accounts.length) {
|
||||
return oauth3.request({
|
||||
url: 'https://api.' + location.hostname + 'api/telebit.cloud/account'
|
||||
, method: 'POST'
|
||||
, session: session
|
||||
, body: {
|
||||
email: email
|
||||
}
|
||||
}).then(function (resp) {
|
||||
listStuff(resp);
|
||||
});
|
||||
} if (resp.data.accounts.length > 2) {
|
||||
window.alert("Multiple accounts.");
|
||||
} else {
|
||||
window.alert("Bad response.");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}, function (err) {
|
||||
console.error('Authentication Failed:');
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
$('body form.js-auth-form').addEventListener('submit', onClickLogin);
|
||||
onChangeProvider('oauth3.org');
|
||||
}());
|
Loading…
Reference in New Issue