Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/responders/user-responders.js
Show First 20 Lines • Show All 574 Lines • ▼ Show 20 Lines | |||||
const siweAuthRequestInputValidator = tShape<SIWEAuthRequest>({ | const siweAuthRequestInputValidator = tShape<SIWEAuthRequest>({ | ||||
signature: t.String, | signature: t.String, | ||||
message: t.String, | message: t.String, | ||||
calendarQuery: entryQueryInputValidator, | calendarQuery: entryQueryInputValidator, | ||||
deviceTokenUpdateRequest: t.maybe(deviceTokenUpdateRequestInputValidator), | deviceTokenUpdateRequest: t.maybe(deviceTokenUpdateRequestInputValidator), | ||||
platformDetails: tPlatformDetails, | platformDetails: tPlatformDetails, | ||||
watchedIDs: t.list(tID), | watchedIDs: t.list(tID), | ||||
signedIdentityKeysBlob: t.maybe(signedIdentityKeysBlobValidator), | signedIdentityKeysBlob: t.maybe(signedIdentityKeysBlobValidator), | ||||
initialNotificationsEncryptedMessage: t.maybe(t.String), | |||||
}); | }); | ||||
async function siweAuthResponder( | async function siweAuthResponder( | ||||
viewer: Viewer, | viewer: Viewer, | ||||
input: mixed, | input: mixed, | ||||
): Promise<LogInResponse> { | ): Promise<LogInResponse> { | ||||
const request = await validateInput( | const request = await validateInput( | ||||
viewer, | viewer, | ||||
siweAuthRequestInputValidator, | siweAuthRequestInputValidator, | ||||
input, | input, | ||||
); | ); | ||||
const { | const { | ||||
message, | message, | ||||
signature, | signature, | ||||
deviceTokenUpdateRequest, | deviceTokenUpdateRequest, | ||||
platformDetails, | platformDetails, | ||||
signedIdentityKeysBlob, | signedIdentityKeysBlob, | ||||
initialNotificationsEncryptedMessage, | |||||
} = request; | } = request; | ||||
const calendarQuery = normalizeCalendarQuery(request.calendarQuery); | const calendarQuery = normalizeCalendarQuery(request.calendarQuery); | ||||
// 1. Ensure that `message` is a well formed Comm SIWE Auth message. | // 1. Ensure that `message` is a well formed Comm SIWE Auth message. | ||||
const siweMessage: SIWEMessage = new SiweMessage(message); | const siweMessage: SIWEMessage = new SiweMessage(message); | ||||
if (!isValidSIWEMessage(siweMessage)) { | if (!isValidSIWEMessage(siweMessage)) { | ||||
throw new ServerError('invalid_parameters'); | throw new ServerError('invalid_parameters'); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 94 Lines • ▼ Show 20 Lines | ): Promise<LogInResponse> { | ||||
// 9. Complete login with call to `processSuccessfulLogin(...)`. | // 9. Complete login with call to `processSuccessfulLogin(...)`. | ||||
const response = await processSuccessfulLogin({ | const response = await processSuccessfulLogin({ | ||||
viewer, | viewer, | ||||
input, | input, | ||||
userID, | userID, | ||||
calendarQuery, | calendarQuery, | ||||
socialProof, | socialProof, | ||||
signedIdentityKeysBlob, | signedIdentityKeysBlob, | ||||
initialNotificationsEncryptedMessage, | |||||
}); | }); | ||||
return validateOutput( | return validateOutput( | ||||
viewer.platformDetails, | viewer.platformDetails, | ||||
logInResponseValidator, | logInResponseValidator, | ||||
response, | response, | ||||
); | ); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 109 Lines • Show Last 20 Lines |