WIP token exchange
This commit is contained in:
parent
03c5974a78
commit
9627e2054e
21
accounts.js
21
accounts.js
@ -177,8 +177,8 @@ function create(app) {
|
|||||||
return createOtp(store, params).then(function (code) {
|
return createOtp(store, params).then(function (code) {
|
||||||
var emailParams = {
|
var emailParams = {
|
||||||
to: params.username,
|
to: params.username,
|
||||||
from: 'login@daplie.com',
|
from: 'login@mg.hellabit.com',
|
||||||
replyTo: 'hello@daplie.com',
|
replyTo: 'hello@mg.hellabit.com',
|
||||||
subject: "Use " + code.code + " as your Login Code",
|
subject: "Use " + code.code + " as your Login Code",
|
||||||
text: "Your login code is:\n\n"
|
text: "Your login code is:\n\n"
|
||||||
+ code.code
|
+ code.code
|
||||||
@ -202,6 +202,23 @@ function create(app) {
|
|||||||
app.handlePromise(req, res, promise, '[issuer@oauth3.org] send one-time-password');
|
app.handlePromise(req, res, promise, '[issuer@oauth3.org] send one-time-password');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
restful.exchangeToken = function (req, res) {
|
||||||
|
var OAUTH3 = require('./oauth3.js');
|
||||||
|
console.log('[exchangeToken] req.oauth3:');
|
||||||
|
console.log(req.oauth3); // req.oauth3.encodedToken
|
||||||
|
|
||||||
|
console.log('[exchangeToken] OAUTH3.jwk:');
|
||||||
|
console.log(OAUTH3.jwk);
|
||||||
|
|
||||||
|
var promise = OAUTH3.jwk.verifyToken(req.oauth3.encodedToken).then(function (result) {
|
||||||
|
console.log('[exchangeToken] verifyToken result:');
|
||||||
|
console.log(result);
|
||||||
|
return { error: { code: "E_NO_IMPL", message: "not implemented [183]" } };
|
||||||
|
});
|
||||||
|
|
||||||
|
app.handlePromise(req, res, promise, '[issuer@oauth3.org] exchangeToken');
|
||||||
|
};
|
||||||
|
|
||||||
restful.createToken = function (req, res) {
|
restful.createToken = function (req, res) {
|
||||||
var store;
|
var store;
|
||||||
var promise = req.getSiteStore().then(function (_store) {
|
var promise = req.getSiteStore().then(function (_store) {
|
||||||
|
16
models.js
16
models.js
@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var apiname = 'issuer_oauth3_org';
|
var apiname = 'issuer_oauth3_org';
|
||||||
var baseFields = [ 'createdAt', 'updatedAt', 'deletedAt' ];
|
var baseFields = [ 'createdAt', 'updatedAt', 'deletedAt', 'revokedAt', 'insertedAt' ];
|
||||||
|
|
||||||
module.exports = [
|
module.exports = [
|
||||||
{
|
{
|
||||||
@ -15,6 +15,18 @@ module.exports = [
|
|||||||
indices: baseFields.concat([ 'code', 'expires' ]),
|
indices: baseFields.concat([ 'code', 'expires' ]),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
tablename: apiname + '_credentials',
|
||||||
|
idname: 'id',
|
||||||
|
// credentialId = ppid@iss
|
||||||
|
indices: baseFields.concat([ 'credentialId', 'sub', 'iss', 'typ' ]), // comment, recoveryCredential
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tablename: apiname + '_credentials_profiles',
|
||||||
|
idname: 'id',
|
||||||
|
// credentialId = ppid@iss
|
||||||
|
indices: baseFields.concat([ 'credentialId', 'profileId' ]),
|
||||||
|
},
|
||||||
|
{ // TODO rename to profiles
|
||||||
tablename: apiname + '_accounts',
|
tablename: apiname + '_accounts',
|
||||||
idname: 'username',
|
idname: 'username',
|
||||||
indices: baseFields.concat([ 'accountId' ]),
|
indices: baseFields.concat([ 'accountId' ]),
|
||||||
@ -33,5 +45,5 @@ module.exports = [
|
|||||||
tablename: apiname + '_grants',
|
tablename: apiname + '_grants',
|
||||||
idname: 'id',
|
idname: 'id',
|
||||||
indices: baseFields.concat([ 'sub', 'azp', 'azpSub', 'scope' ]),
|
indices: baseFields.concat([ 'sub', 'azp', 'azpSub', 'scope' ]),
|
||||||
},
|
}
|
||||||
];
|
];
|
||||||
|
2
rest.js
2
rest.js
@ -48,6 +48,8 @@ module.exports.create = function (bigconf, deps, app) {
|
|||||||
app.post( '/access_token/:sub/:aud/:azp', Accounts.restful.createToken);
|
app.post( '/access_token/:sub/:aud/:azp', Accounts.restful.createToken);
|
||||||
app.post( '/access_token', Accounts.restful.createToken);
|
app.post( '/access_token', Accounts.restful.createToken);
|
||||||
|
|
||||||
|
app.post( '/exchange_token', Accounts.restful.exchangeToken);
|
||||||
|
|
||||||
app.use( '/acl/profile', attachSiteModels);
|
app.use( '/acl/profile', attachSiteModels);
|
||||||
app.get( '/acl/profile', Accounts.restful.getProfile);
|
app.get( '/acl/profile', Accounts.restful.getProfile);
|
||||||
app.post( '/acl/profile', Accounts.restful.setProfile);
|
app.post( '/acl/profile', Accounts.restful.setProfile);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user