better-auth
Version:
The most comprehensive authentication framework for TypeScript.
30 lines (29 loc) • 794 B
JavaScript
import { symmetricDecrypt, symmetricEncrypt } from "../crypto/index.mjs";
//#region src/oauth2/utils.ts
/**
* Check if a string looks like encrypted data
*/
function isLikelyEncrypted(token) {
if (token.startsWith("$ba$")) return true;
return token.length % 2 === 0 && /^[0-9a-f]+$/i.test(token);
}
function decryptOAuthToken(token, ctx) {
if (!token) return token;
if (ctx.options.account?.encryptOAuthTokens) {
if (!isLikelyEncrypted(token)) return token;
return symmetricDecrypt({
key: ctx.secretConfig,
data: token
});
}
return token;
}
function setTokenUtil(token, ctx) {
if (ctx.options.account?.encryptOAuthTokens && token) return symmetricEncrypt({
key: ctx.secretConfig,
data: token
});
return token;
}
//#endregion
export { decryptOAuthToken, setTokenUtil };