Make hydrogen generate the device scope

This commit is contained in:
Quentin Gliech 2022-07-04 18:44:31 +02:00
parent 7aa7af4adf
commit 4b1cc8d645
No known key found for this signature in database
GPG Key ID: 22D62B84552719FC
2 changed files with 8 additions and 2 deletions

View File

@ -42,12 +42,13 @@ export class StartOIDCLoginViewModel extends ViewModel {
async discover() { async discover() {
// Ask for the metadata once so it gets discovered and cached // Ask for the metadata once so it gets discovered and cached
await this._api.metadata() await this._api.metadata()
await this._api.ensureRegistered(); await this._api.registration();
} }
async startOIDCLogin() { async startOIDCLogin() {
const deviceScope = this._api.generateDeviceScope();
const p = this._api.generateParams({ const p = this._api.generateParams({
scope: "openid", scope: `openid ${deviceScope}`,
redirectUri: this.urlCreator.createOIDCRedirectURL(), redirectUri: this.urlCreator.createOIDCRedirectURL(),
}); });
const clientId = await this._api.clientId(); const clientId = await this._api.clientId();

View File

@ -203,6 +203,11 @@ export class OidcApi {
return metadata["registration_endpoint"]; return metadata["registration_endpoint"];
} }
generateDeviceScope(): String {
const deviceId = randomString(10);
return `urn:matrix:device:${deviceId}`;
}
generateParams({ scope, redirectUri }: { scope: string, redirectUri: string }): AuthorizationParams { generateParams({ scope, redirectUri }: { scope: string, redirectUri: string }): AuthorizationParams {
return { return {
scope, scope,