You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1292,8 +1293,8 @@ export class LitNodeClientNodeJs
1292
1293
// -- optional params
1293
1294
...(params.authMethods&&
1294
1295
params.authMethods.length>0&&{
1295
-
authMethods: params.authMethods,
1296
-
}),
1296
+
authMethods: params.authMethods,
1297
+
}),
1297
1298
};
1298
1299
1299
1300
logWithRequestId(requestId,'reqBody:',reqBody);
@@ -2065,18 +2066,25 @@ export class LitNodeClientNodeJs
2065
2066
};
2066
2067
2067
2068
/**
2068
-
* Get session signatures for a set of [Lit resources](https://v6-api-doc-lit-js-sdk.vercel.app/interfaces/types_src.ILitResource.html#resource).
2069
+
*
2070
+
* Retrieves or generates sessionSigs (think access token) for accessing Lit Network resources.
2069
2071
*
2070
2072
* How this function works on a high level:
2071
2073
* 1. Generate or retrieve [session keys](https://v6-api-doc-lit-js-sdk.vercel.app/interfaces/types_src.SessionKeyPair.html) (a public and private key pair)
2072
2074
* 2. Generate or retrieve the [`AuthSig`](https://v6-api-doc-lit-js-sdk.vercel.app/interfaces/types_src.AuthSig.html) that specifies the session [abilities](https://v6-api-doc-lit-js-sdk.vercel.app/enums/auth_helpers_src.LitAbility.html)
2073
2075
* 3. Sign the specific resources with the session key
2074
2076
*
2077
+
* The process follows these steps:
2078
+
* 1. Retrieves or generates a session key pair (Ed25519) for the user's device. The session key is either fetched from local storage or newly created if not found. The key does not expire.
2079
+
* 2. Generates an authentication signature (`authSig`) by signing an ERC-5573 “Sign-in with Ethereum” message, which includes resource ability requests, capabilities, expiration, the user's device session public key, and a nonce. The `authSig` is retrieved from local storage, and if it has expired, the user will be prompted to re-sign.
2080
+
* 3. Uses the session private key to sign the session public key along with the resource ability requests, capabilities, issuedAt, and expiration details. This creates a device-generated signature.
2081
+
* 4. Constructs the session signatures (`sessionSigs`) by including the device-generated signature and the original message. The `sessionSigs` provide access to Lit Network features such as `executeJs` and `pkpSign`.
2082
+
*
2083
+
* See Sequence Diagram: https://www.plantuml.com/plantuml/uml/VPH1RnCn48Nl_XLFlT1Av00eGkm15QKLWY8K9K9SO-rEar4sjcLFalBl6NjJAuaMRl5utfjlPjQvJsAZx7UziQtuY5-9eWaQufQ3TOAR77cJy407Rka6zlNdHTRouUbIzSEtjiTIBUswg5v_NwMnuAVlA9KKFPN3I0x9qSSj7bqNF3iPykl9c4o9oUSJMuElv2XQ8IHAYRt3bluWM8wuVUpUJwVlFjsP8JUh5B_1DyV2AYdD6DjhLsTQTaYd3W3ad28SGWqM997fG5ZrB9DJqOaALuRwH1TMpik8tIYze-E8OrPKU5I6cMqtem2kCqOhr4vdaRAvtSjcoMkTo68scKu_Vi1EPMfrP_xVtj7sFMaHNg-6GVqk0MW0z18uKdVULTvDWtdqko28b7KktvUB2hKOBd1asU2QgDfTzrj7T4bLPdv6TR0zLwPQKkkZpIRTY4CTMbrBpg_VKuXyi49beUAHqIlirOUrL2zq9JPPdpRR5OMLVQGoGlLcjyRyQNv6MHz4W_fG42W--xWhUfNyOxiLL1USS6lRLeyAkYLNjrkVJuClm_qp5I8Lq0krUw7lwIt2DgY9oiozrjA_Yhy0
2075
2084
*
2076
2085
* Note: When generating session signatures for different PKPs or auth methods,
2077
2086
* be sure to call disconnectWeb3 to clear auth signatures stored in local storage
2078
2087
*
2079
-
*
2080
2088
* @param { GetSessionSigsProps } params
2081
2089
*
2082
2090
* An example of how this function is used can be found in the Lit developer-guides-code repository [here](https://github.com/LIT-Protocol/developer-guides-code/tree/master/session-signatures/getSessionSigs).
@@ -2085,21 +2093,18 @@ export class LitNodeClientNodeJs
2085
2093
getSessionSigs=async(
2086
2094
params: GetSessionSigsProps
2087
2095
): Promise<SessionSigsMap>=>{
2088
-
2089
2096
// -- prepare
2090
2097
// Try to get it from local storage, if not generates one~
0 commit comments