Skip to content

Commit

Permalink
Allow integration managers to validate user identity after opening (#…
Browse files Browse the repository at this point in the history
…8782)

* Add getOpenIdToken function

* tidy up

* tidy up

* log an error

Co-authored-by: Travis Ralston <travisr@matrix.org>
  • Loading branch information
Half-Shot and turt2live committed Jun 16, 2022
1 parent 43f2ee4 commit 4faacda
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/ScalarMessaging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,13 @@ Example:
avatar_url: null
}
}
get_open_id_token
-----------------
Get an openID token for the current user session.
Request: No parameters
Response:
- The openId token object as described in https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3useruseridopenidrequest_token
*/

import { MatrixEvent } from 'matrix-js-sdk/src/models/event';
Expand Down Expand Up @@ -262,6 +269,7 @@ enum Action {
BotOptions = "bot_options",
SetBotOptions = "set_bot_options",
SetBotPower = "set_bot_power",
GetOpenIdToken = "get_open_id_token"
}

function sendResponse(event: MessageEvent<any>, res: any): void {
Expand Down Expand Up @@ -587,6 +595,16 @@ function returnStateEvent(event: MessageEvent<any>, roomId: string, eventType: s
sendResponse(event, stateEvent.getContent());
}

async function getOpenIdToken(event: MessageEvent<any>) {
try {
const tokenObject = MatrixClientPeg.get().getOpenIdToken();
sendResponse(event, tokenObject);
} catch (ex) {
logger.warn("Unable to fetch openId token.", ex);
sendError(event, 'Unable to fetch openId token.');
}
}

const onMessage = function(event: MessageEvent<any>): void {
if (!event.origin) { // stupid chrome
// @ts-ignore
Expand Down Expand Up @@ -701,6 +719,9 @@ const onMessage = function(event: MessageEvent<any>): void {
case Action.SetBotPower:
setBotPower(event, roomId, userId, event.data.level, event.data.ignoreIfGreater);
break;
case Action.GetOpenIdToken:
getOpenIdToken(event);
break;
default:
logger.warn("Unhandled postMessage event with action '" + event.data.action +"'");
break;
Expand Down

0 comments on commit 4faacda

Please sign in to comment.