Skip to content

Commit 50a471b

Browse files
committed
client: use long term token for direct connection
1 parent 9b7ead2 commit 50a471b

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

packages/client/src/index.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,17 @@ export async function loginScryptedClient(options: ScryptedLoginOptions) {
153153

154154
export async function checkScryptedClientLogin(options?: ScryptedConnectionOptions) {
155155
let { baseUrl } = options || {};
156-
const url = combineBaseUrl(baseUrl, 'login');
156+
let url = combineBaseUrl(baseUrl, 'login');
157157
const headers: AxiosRequestHeaders = {};
158-
if (options?.previousLoginResult?.authorization)
159-
headers.Authorization = options?.previousLoginResult?.authorization;
158+
if (options?.previousLoginResult?.queryToken) {
159+
// headers.Authorization = options?.previousLoginResult?.authorization;
160+
// const search = new URLSearchParams(options.previousLoginResult.queryToken);
161+
// url += '?' + search.toString();
162+
const token = options?.previousLoginResult.username + ":" + options.previousLoginResult.token;
163+
const hash = Buffer.from(token).toString('base64');
164+
165+
headers.Authorization = `Basic ${hash}`;
166+
}
160167
const response = await axios.get(url, {
161168
withCredentials: true,
162169
headers,
@@ -185,6 +192,8 @@ export async function checkScryptedClientLogin(options?: ScryptedConnectionOptio
185192
}
186193

187194
export interface ScryptedClientLoginResult {
195+
username: string;
196+
token: string;
188197
authorization: string;
189198
queryToken: { [parameter: string]: string };
190199
localAddresses: string[];
@@ -235,6 +244,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
235244
let scryptedCloud: boolean;
236245
let directAddress: string;
237246
let cloudAddress: string;
247+
let token: string;
238248

239249
console.log('@scrypted/client', packageJson.version);
240250

@@ -250,6 +260,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
250260
cloudAddress = loginResult.cloudAddress;
251261
authorization = loginResult.authorization;
252262
queryToken = loginResult.queryToken;
263+
token = loginResult.token;
253264
console.log('login result', Date.now() - start, loginResult);
254265
}
255266
else {
@@ -303,6 +314,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
303314
username = loginCheck.username;
304315
authorization = loginCheck.authorization;
305316
queryToken = loginCheck.queryToken;
317+
token = loginCheck.token;
306318
console.log('login checked', Date.now() - start, loginCheck);
307319
}
308320

@@ -686,6 +698,8 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
686698
browserSignalingSession,
687699
rpcPeer,
688700
loginResult: {
701+
username,
702+
token,
689703
directAddress,
690704
localAddresses,
691705
scryptedCloud,

0 commit comments

Comments
 (0)