yubico-otp-client
Version:
Client for Yubico OTP verify service
33 lines (27 loc) • 836 B
text/typescript
import { realpathSync } from "fs";
import { argv } from "process";
import { verifyOtp } from "./main";
import { Config } from "./types";
export async function runCmd(config: Config) {
const otp = await readOtp();
const result = await verifyOtp(config, otp);
console.log(result);
process.exit();
}
async function readOtp(): Promise<string> {
console.log("Push (y) on yubico stick: ")
return new Promise((resolve, reject) => {
process.stdin.on('data', (data) => {
const otp = data.toString().trim()
return resolve(otp);
})
});
}
if (!argv[2]) {
console.log('Please give path to JSON configuration file as argument!')
process.exit();
}
var configPath = realpathSync(argv[2])
var config: Config = require(configPath);
runCmd(config)
.catch(console.error)