feat(module,auth): authentication module with arbitrary claims support

This commit is contained in:
2023-02-24 14:40:28 +01:00
parent 7f07e52ae0
commit 640f429580
25 changed files with 558 additions and 261 deletions

View File

@ -21,6 +21,7 @@
</script>
<script src="/edge/sdk/client.js"></script>
<script src="test/client-sdk.js"></script>
<script src="test/auth-module.js"></script>
<script class="mocha-exec">
mocha.run();
</script>

View File

@ -0,0 +1,20 @@
describe('Auth Module', function() {
before(() => {
return Edge.connect();
});
after(() => {
Edge.disconnect();
});
it('should retrieve user informations', function() {
return Edge.rpc("getUserInfo")
.then(userInfo => {
chai.assert.isNotNull(userInfo.subject);
chai.assert.isNotNull(userInfo.role);
chai.assert.isNotNull(userInfo.preferredUsername);
})
});
});

View File

@ -10,12 +10,12 @@ function onInit() {
rpc.register("add", add);
rpc.register("reset", reset);
rpc.register("total", total);
rpc.register("getUserInfo", getUserInfo);
}
// Called for each client message
function onClientMessage(ctx, data) {
var sessionId = context.get(ctx, context.SESSION_ID);
console.log("onClientMessage", sessionId, data.now);
console.log("onClientMessage", data.now);
net.send(ctx, { now: data.now });
}
@ -60,4 +60,16 @@ function reset(ctx, params) {
function total(ctx, params) {
return count;
}
function getUserInfo(ctx, params) {
var subject = auth.getClaim(ctx, auth.CLAIM_SUBJECT);
var role = auth.getClaim(ctx, auth.CLAIM_ROLE);
var preferredUsername = auth.getClaim(ctx, auth.CLAIM_PREFERRED_USERNAME);
return {
subject: subject,
role: role,
preferredUsername: preferredUsername,
};
}