refactor: 💡 fix typo and imporve code quality

This commit is contained in:
Jin 2025-03-29 01:00:08 +01:00
parent bd092e0119
commit 2eeb376d24
8 changed files with 40 additions and 49 deletions

View File

@ -131,7 +131,7 @@ CREATE TABLE IF NOT EXISTS "user_data"
tmpID INT, tmpID INT,
username TEXT, username TEXT,
email TEXT, email TEXT,
userIDEcnryptedDataKey TEXT, userIDEncryptedDataKey TEXT,
userIDVerificationHash TEXT, userIDVerificationHash TEXT,
salt TEXT, salt TEXT,
derivedKey TEXT, derivedKey TEXT,

View File

@ -1,4 +1,4 @@
class OpenIDrror { class OpenIdError {
message: string; message: string;
constructor(message: string) { constructor(message: string) {
@ -6,4 +6,4 @@ class OpenIDrror {
} }
} }
export default OpenIDrror; export default OpenIdError;

View File

@ -50,13 +50,6 @@ export default class AbstractCodeTypeWidget extends TypeWidget {
matchTags: { bothTags: true }, matchTags: { bothTags: true },
highlightSelectionMatches: { showToken: false, annotateScrollbar: false }, highlightSelectionMatches: { showToken: false, annotateScrollbar: false },
lineNumbers: true, lineNumbers: true,
keyMap: "default",
lint: false,
gutters: [],
tabindex: 0,
dragDrop: true,
placeholder: "",
readOnly: false,
// we line wrap partly also because without it horizontal scrollbar displays only when you scroll // we line wrap partly also because without it horizontal scrollbar displays only when you scroll
// all the way to the bottom of the note. With line wrap, there's no horizontal scrollbar so no problem // all the way to the bottom of the note. With line wrap, there's no horizontal scrollbar so no problem
lineWrapping: options.is("codeLineWrapEnabled"), lineWrapping: options.is("codeLineWrapEnabled"),

View File

@ -6,7 +6,7 @@ import { t } from "../../../services/i18n.js";
import utils from "../../../services/utils.js"; import utils from "../../../services/utils.js";
import dialogService from "../../../services/dialog.js"; import dialogService from "../../../services/dialog.js";
const TPL_WEB = ` const TPL = `
<div class="options-section"> <div class="options-section">
<h4>${t("multi_factor_authentication.title")}</h4> <h4>${t("multi_factor_authentication.title")}</h4>
<p class="form-text">${t("multi_factor_authentication.description")}</p> <p class="form-text">${t("multi_factor_authentication.description")}</p>
@ -147,7 +147,7 @@ export default class MultiFactorAuthenticationOptions extends OptionsWidget {
private $missingVars!: JQuery<HTMLElement>; private $missingVars!: JQuery<HTMLElement>;
doRender() { doRender() {
const template = utils.isElectron() ? TPL_ELECTRON : TPL_WEB; const template = utils.isElectron() ? TPL_ELECTRON : TPL;
this.$widget = $(template); this.$widget = $(template);
if (!utils.isElectron()) { if (!utils.isElectron()) {

View File

@ -21,38 +21,38 @@ function getScryptHash(password: crypto.BinaryLike, salt: crypto.BinaryLike) {
} }
function getSubjectIdentifierVerificationHash( function getSubjectIdentifierVerificationHash(
guessedUserId: string | crypto.BinaryLike, guessedUserId: string | crypto.BinaryLike,
salt?: string salt?: string
) { ) {
if (salt != null) return getScryptHash(guessedUserId, salt); if (salt != null) return getScryptHash(guessedUserId, salt);
const savedSalt = sql.getValue("SELECT salt FROM user_data;"); const savedSalt = sql.getValue("SELECT salt FROM user_data;");
if (savedSalt === undefined || savedSalt === null) { if (!savedSalt) {
console.log("User salt undefined!"); console.error("User salt undefined!");
return undefined; return undefined;
} }
return getScryptHash(guessedUserId, savedSalt.toString()); return getScryptHash(guessedUserId, savedSalt.toString());
} }
function getSubjectIdentifierDerivedKey( function getSubjectIdentifierDerivedKey(
subjectIdentifer: crypto.BinaryLike, subjectIdentifer: crypto.BinaryLike,
givenSalt?: string givenSalt?: string
) { ) {
if (givenSalt !== undefined) { if (givenSalt !== undefined) {
return getScryptHash(subjectIdentifer, givenSalt.toString()); return getScryptHash(subjectIdentifer, givenSalt.toString());
} }
const salt = sql.getValue("SELECT salt FROM user_data;"); const salt = sql.getValue("SELECT salt FROM user_data;");
if (salt === undefined || salt === null) return undefined; if (!salt) return undefined;
return getScryptHash(subjectIdentifer, salt.toString()); return getScryptHash(subjectIdentifer, salt.toString());
} }
function createSubjectIdentifierDerivedKey( function createSubjectIdentifierDerivedKey(
subjectIdentifer: string | crypto.BinaryLike, subjectIdentifer: string | crypto.BinaryLike,
salt: string | crypto.BinaryLike salt: string | crypto.BinaryLike
) { ) {
return getScryptHash(subjectIdentifer, salt); return getScryptHash(subjectIdentifer, salt);
} }
export default { export default {

View File

@ -3,7 +3,7 @@ import utils from "../utils.js";
import dataEncryptionService from "./data_encryption.js"; import dataEncryptionService from "./data_encryption.js";
import sql from "../sql.js"; import sql from "../sql.js";
import sqlInit from "../sql_init.js"; import sqlInit from "../sql_init.js";
import OpenIDError from "../../errors/open_id_error.js"; import OpenIdError from "../../errors/open_id_error.js";
function saveUser(subjectIdentifier: string, name: string, email: string) { function saveUser(subjectIdentifier: string, name: string, email: string) {
if (isUserSaved()) return false; if (isUserSaved()) return false;
@ -15,8 +15,8 @@ function saveUser(subjectIdentifier: string, name: string, email: string) {
subjectIdentifier, subjectIdentifier,
verificationSalt verificationSalt
); );
if (verificationHash === undefined) { if (!verificationHash) {
throw new OpenIDError("Verification hash undefined!") throw new OpenIdError("Verification hash undefined!")
} }
const userIDEncryptedDataKey = setDataKey( const userIDEncryptedDataKey = setDataKey(
@ -25,8 +25,8 @@ function saveUser(subjectIdentifier: string, name: string, email: string) {
verificationSalt verificationSalt
); );
if (userIDEncryptedDataKey === undefined || userIDEncryptedDataKey === null) { if (!userIDEncryptedDataKey) {
console.log("USERID ENCRYPTED DATA KEY NULL"); console.error("UserID encrypted data key null");
return undefined; return undefined;
} }
@ -35,7 +35,7 @@ function saveUser(subjectIdentifier: string, name: string, email: string) {
userIDVerificationHash: utils.toBase64(verificationHash), userIDVerificationHash: utils.toBase64(verificationHash),
salt: verificationSalt, salt: verificationSalt,
derivedKey: derivedKeySalt, derivedKey: derivedKeySalt,
userIDEcnryptedDataKey: userIDEncryptedDataKey, userIDEncryptedDataKey: userIDEncryptedDataKey,
isSetup: "true", isSetup: "true",
username: name, username: name,
email: email email: email
@ -46,7 +46,7 @@ function saveUser(subjectIdentifier: string, name: string, email: string) {
} }
function isSubjectIdentifierSaved() { function isSubjectIdentifierSaved() {
const value = sql.getValue("SELECT userIDEcnryptedDataKey FROM user_data;"); const value = sql.getValue("SELECT userIDEncryptedDataKey FROM user_data;");
if (value === undefined || value === null || value === "") return false; if (value === undefined || value === null || value === "") return false;
return true; return true;
} }
@ -58,7 +58,7 @@ function isUserSaved() {
function verifyOpenIDSubjectIdentifier(subjectIdentifier: string) { function verifyOpenIDSubjectIdentifier(subjectIdentifier: string) {
if (!sqlInit.isDbInitialized()) { if (!sqlInit.isDbInitialized()) {
throw new OpenIDError("Database not initialized!"); throw new OpenIdError("Database not initialized!");
} }
if (isUserSaved()) { if (isUserSaved()) {
@ -100,7 +100,7 @@ function setDataKey(
myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier, salt); myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier, salt);
if (subjectIdentifierDerivedKey === undefined) { if (subjectIdentifierDerivedKey === undefined) {
console.log("SOMETHING WENT WRONG SAVING USER ID DERIVED KEY"); console.error("SOMETHING WENT WRONG SAVING USER ID DERIVED KEY");
return undefined; return undefined;
} }
const newEncryptedDataKey = dataEncryptionService.encrypt( const newEncryptedDataKey = dataEncryptionService.encrypt(
@ -116,16 +116,16 @@ function getDataKey(subjectIdentifier: string) {
myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier); myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier);
const encryptedDataKey = sql.getValue( const encryptedDataKey = sql.getValue(
"SELECT userIDEcnryptedDataKey FROM user_data" "SELECT userIDEncryptedDataKey FROM user_data"
); );
if (encryptedDataKey === undefined || encryptedDataKey === null) { if (!encryptedDataKey) {
console.log("Encrypted data key empty!"); console.error("Encrypted data key empty!");
return undefined; return undefined;
} }
if (subjectIdentifierDerivedKey === undefined) { if (!subjectIdentifierDerivedKey) {
console.log("SOMETHING WENT WRONG SAVING USER ID DERIVED KEY"); console.error("SOMETHING WENT WRONG SAVING USER ID DERIVED KEY");
return undefined; return undefined;
} }
const decryptedDataKey = dataEncryptionService.decrypt( const decryptedDataKey = dataEncryptionService.decrypt(

View File

@ -126,14 +126,12 @@ function generateOAuthConfig() {
return session; return session;
} }
// 保存用户信息
openIDEncryption.saveUser( openIDEncryption.saveUser(
req.oidc.user.sub.toString(), req.oidc.user.sub.toString(),
req.oidc.user.name.toString(), req.oidc.user.name.toString(),
req.oidc.user.email.toString() req.oidc.user.email.toString()
); );
// 设置登录状态
req.session.loggedIn = true; req.session.loggedIn = true;
req.session.lastAuthState = { req.session.lastAuthState = {
totpEnabled: false, totpEnabled: false,

View File

@ -52,7 +52,7 @@ async function initDbConnection() {
tmpID INT, tmpID INT,
username TEXT, username TEXT,
email TEXT, email TEXT,
userIDEcnryptedDataKey TEXT, userIDEncryptedDataKey TEXT,
userIDVerificationHash TEXT, userIDVerificationHash TEXT,
salt TEXT, salt TEXT,
derivedKey TEXT, derivedKey TEXT,