前端做加盐哈希能防脱裤。。。这理论不亚于戴个贞操锁然后把钥匙别在边上。。。
后端好歹还塞在里面,要先亲密接触一下隔夜饭才能拿出来。。。
不过
https://jnexswpfgysrqlagwajs.supabase.co这个域名确实写在 1.0.9 版的 crx 安装包的的 chunk-7bd2bbc8.js 里
grant_type=password 请求从属于 signInWithPassword 方法
向上
yr = async (n, e) => {
const {data: t, error: s} = await se.auth.signInWithPassword({email: n, password: e});
t.user && await ze.storage.sync.set({[ye]: {email: n, password: e}}), s && console.error(s);
}
jt = async () => {
const n = await ze.storage.sync.get(ye);
if (!n[ye]) return;
const {email: e, password: t} = n[ye], s = await Ce();
return (!s || s.email !== e) && await yr(e, t), e;
}
继续向上则是
kr = async (n, e = 0) => {
if (!await jt()) return !1;
const s = await Ce();
if (!s || !await Rt()) return !1;
const i = await br(
n.name, n.origin,
s.id);
if (i && i.length > 0) return !0;
const {error: a} = await se.from("words").insert([{...n, user_id:
s.id}]);
return a ? e >= 2 ? !1 : kr(n, e + 1) : !0;
}, Sr = async (n, e = 0) => {
if (!await jt()) return;
const s = await Ce();
if (!s || !await Rt()) return;
const {error: i} = await se.from("words").delete().match({name: n, user_id:
s.id});
if (i) {
if (e >= 2) return;
Sr(n, e + 1);
}
}
这个看起来已经是功能模块了
可见问题应当出现在 jt 方法,当 kr 和 Sr 试图保存单词的时候发现没有登录成功或者没有建立对应的数据库,因此自动尝试登录
至于为啥这么蠢别问我。。。反正不是我写的。。。