utils

Properti utils memiliki beberapa fungsi bantuan.

ctx.moco.utils;

Utility methods

hashPassword(pwd)

Hasilkan password hash.

Arguments

nametypedescription
pwdstringpassword

Example

(async function () {
const hashedPwd = await ctx.moco.utils.hashPassword("12QWaszx");
})();

Return

Promise<string>

verifyPassword(pwd, storedPwd)

Cocokkan password dengan password hash.

Arguments

nametypedescription
pwdstringpassword yang hendak diverifikasi
storedPwdstringpassword tersimpan (hash)

Example

(async function () {
const hashedPwd = await ctx.moco.utils.hashPassword("12QWaszx");
const pwdVerified = await ctx.moco.utils.verifyPassword(
"12QWaszx",
hashedPwd
);
})();

Return

Promise<boolean>

sendVerification(userId)

Kirim email verifikasi ke satu user.

Arguments

nametypedescription
userIdstringID dari user yang hendak dikirimi email verifikasi

Example

(async function () {
const result = await ctx.moco.utils.sendVerification(userId);
})();

Return

Promise<string>

authenticate(ctx, accessToken)

Otentikasikan user secara manual. Access Token akan divalidasi. Jika valid, maka ctx.moco.user akan terisi (tidak undefined).

Arguments

nametypedescription
ctxanycontext untuk request saat ini
accessTokenstringaccess token

Example

(async function () {
try {
await ctx.moco.utils.authenticate(ctx, ctx.data.accessToken);
console.log("user:", ctx.moco.user);
} catch (err) {
console.warn(err);
return {
status: 401,
error: {
name: err.name,
message: err.message,
},
};
}
})();

Return

Promise<undefined>

addAccess(userId)

Tambahkan akses untuk seorang user, sehingga menghasilkan Access Token dan Refresh Token.

Arguments

nametypedescription
userIdstringID user

Example

(async function () {
const tokens = await ctx.moco.utils.addAccess(
"5c5f8364-129e-4dff-9621-f4a826cb5077"
);
})();

Return

Promise<object>

{
accessToken: "eyJhbGciOiJSUzI1NiIsInR5...",
expiry: "2071-09-29T17:21:05.343Z",
refreshToken: "eyJhbGciOiJSUzI1NiIsInR5..."
}

revokeAllAccess(userId)

Menghapus semua token whitelist dari seorang user.

Arguments

nametypedescription
userIdstringID user

Example

(async function () {
const tokens = await ctx.moco.utils.revokeAllAccess(
"5c5f8364-129e-4dff-9621-f4a826cb5077"
);
})();

Return

Promise<undefined>