feat: getDefaultPublicKey and firstConnect with key

* getDefaultPublicKey make sure that you will get a public key, if it
doesn't exist, create one
* firstConnect with key instead of password
This commit is contained in:
Levi Yan
2024-10-17 16:06:28 +08:00
parent 6921406013
commit 428764b8ae

View File

@@ -1,6 +1,6 @@
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import RemoteContainer from './remote-container'; import RemoteContainer from './remote-container';
import {fetch} from './utils' import * as utils from './utils'
export default class DSHome { export default class DSHome {
private context: vscode.ExtensionContext; private context: vscode.ExtensionContext;
@@ -23,7 +23,7 @@ export default class DSHome {
} }
); );
fetch(url).then(async (content) => { utils.fetch(url).then(async (content) => {
panel.webview.html = await this.getWebviewContent(content); panel.webview.html = await this.getWebviewContent(content);
}) })
@@ -31,7 +31,7 @@ export default class DSHome {
async (message) => { async (message) => {
switch (message.command) { switch (message.command) {
case 'firstOpenRemoteFolder': case 'firstOpenRemoteFolder':
await this.remoteContainer.firstConnect(message.host, message.username, message.password, message.port) await this.remoteContainer.firstConnect(message.host, message.username, message.port)
.then((_res) => { .then((_res) => {
if (_res == 'success') { if (_res == 'success') {
// only success then open folder // only success then open folder
@@ -64,6 +64,17 @@ export default class DSHome {
panel.webview.postMessage({ command: 'setUserToken', data: {ok: false}}) panel.webview.postMessage({ command: 'setUserToken', data: {ok: false}})
break; break;
} }
case 'getDefaultPublicKey':
var defaultPublicKey;
if (utils.existDefaultPublicKey()) {
defaultPublicKey = utils.getDefaultPublicKey();
} else {
// if default public key doesn't exist, create it
utils.createSSHKey();
defaultPublicKey = utils.getDefaultPublicKey();
}
panel.webview.postMessage({ command: 'getDefaultPublicKey', data: {defaultPublicKey: defaultPublicKey}})
} }
}, },
undefined, undefined,