@did-connect/handler
Advanced tools
Comparing version 2.1.21 to 2.1.22
@@ -14,2 +14,5 @@ import { SessionStorage } from '@did-connect/storage'; | ||
body: TSession; | ||
headers: { | ||
[key: string]: string; | ||
}; | ||
}; | ||
@@ -16,0 +19,0 @@ export declare type TSessionUpdateResult = TSession | { |
@@ -149,3 +149,3 @@ "use strict"; | ||
} | ||
const { sessionId, updaterPk, strategy = 'default', authUrl, connectUrl = '', approveUrl = '', autoConnect = true, onlyConnect = false, requestedClaims = [], timeout, } = context.body; | ||
const { sessionId, updaterPk, strategy = 'default', authUrl, connectUrl = '', approveUrl = '', autoConnect = true, forceConnected = true, onlyConnect = false, requestedClaims = [], timeout, } = context.body; | ||
if (sessionId.length !== 21) { | ||
@@ -168,2 +168,4 @@ return { error: 'Invalid sessionId', code: 'SESSION_ID_INVALID' }; | ||
autoConnect, | ||
forceConnected, | ||
withinSession: !!context.previousConnected && context.headers['x-user-did'] === context.previousConnected.userDid, | ||
onlyConnect, | ||
@@ -250,8 +252,21 @@ appInfo: yield authenticator.getAppInfo(Object.assign(Object.assign({}, context), { baseUrl: new URL(authUrl).origin })), | ||
const getAuthPrincipalRequest = (session) => { | ||
const { strategy, previousConnected, onlyConnect } = session; | ||
const { strategy, previousConnected, forceConnected, withinSession, onlyConnect } = session; | ||
let description = 'Select an account to continue'; | ||
let target = ''; | ||
let supervised = false; | ||
if (onlyConnect || !previousConnected) { | ||
description = (0, did_1.isValid)(strategy) ? 'Select following account to continue' : 'Select an account to continue'; | ||
target = (0, did_1.isValid)(strategy) ? strategy : ''; | ||
supervised = true; | ||
} | ||
else if (forceConnected && withinSession && previousConnected) { | ||
description = 'Select following account to continue'; | ||
target = previousConnected.userDid; | ||
supervised = false; | ||
} | ||
return { | ||
type: 'authPrincipal', | ||
description: 'select the principal to be used for authentication', | ||
target: (0, did_1.isValid)(strategy) ? strategy : '', | ||
supervised: onlyConnect || !previousConnected, | ||
description, | ||
target, | ||
supervised, | ||
}; | ||
@@ -355,3 +370,2 @@ }; | ||
} | ||
let newSession; | ||
// if we are in created status, | ||
@@ -362,17 +376,3 @@ if (session.status === 'created') { | ||
yield storage.update(sessionId, { status: 'walletScanned' }); | ||
// skip authPrincipal step if we are using smart strategy | ||
if (session.strategy === 'smart' && session.previousConnected) { | ||
logger.debug('session.walletConnected', sessionId); | ||
newSession = yield storage.update(sessionId, { | ||
status: 'walletConnected', | ||
currentConnected: Object.assign(Object.assign({}, session.previousConnected), { didwallet }), | ||
}); | ||
wsServer.broadcast(sessionId, { | ||
status: 'walletConnected', | ||
currentConnected: Object.assign(Object.assign({}, session.previousConnected), { didwallet }), | ||
}); | ||
newSession = yield ensureAppConnected(newSession, locale); | ||
return signClaims(newSession.requestedClaims[session.currentStep], Object.assign(Object.assign({}, context), { session: newSession })); | ||
} | ||
// else we should return authPrincipal claim | ||
// return authPrincipal claim | ||
return signClaims([getAuthPrincipalRequest(session)], context); | ||
@@ -379,0 +379,0 @@ } |
{ | ||
"name": "@did-connect/handler", | ||
"description": "Abstract handler for did-connect relay server", | ||
"version": "2.1.21", | ||
"version": "2.1.22", | ||
"author": { | ||
@@ -24,5 +24,5 @@ "name": "wangshijun", | ||
"@arcblock/ws": "^1.17.22", | ||
"@did-connect/authenticator": "2.1.21", | ||
"@did-connect/storage": "2.1.21", | ||
"@did-connect/types": "2.1.21", | ||
"@did-connect/authenticator": "2.1.22", | ||
"@did-connect/storage": "2.1.22", | ||
"@did-connect/types": "2.1.22", | ||
"@ocap/mcrypto": "^1.17.22", | ||
@@ -74,3 +74,3 @@ "@ocap/util": "^1.17.22", | ||
"resolutions": {}, | ||
"gitHead": "33cbc41e5fca1101bc3f41d6bf83b36ededde742" | ||
"gitHead": "296830451d0734b61ad3e19ffb5bd34af558bb27" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
661
34641
+ Added@did-connect/authenticator@2.1.22(transitive)
+ Added@did-connect/storage@2.1.22(transitive)
+ Added@did-connect/types@2.1.22(transitive)
- Removed@did-connect/authenticator@2.1.21(transitive)
- Removed@did-connect/storage@2.1.21(transitive)
- Removed@did-connect/types@2.1.21(transitive)
Updated@did-connect/storage@2.1.22
Updated@did-connect/types@2.1.22