fix: improve login flow by ensuring proper type handling for redirect and prevent loopback IP blocking in security checks
This commit is contained in:
@@ -447,6 +447,7 @@ export const enforceRequest = mutation({
|
||||
const ip = args.ip.trim();
|
||||
const path = args.path.trim() || '/';
|
||||
const pathKey = path.replace(/^\/+/, '');
|
||||
const isLoopback = ip === '::1' || ip === '127.0.0.1' || ip.startsWith('127.');
|
||||
|
||||
// 1) Blacklist enforcement (somente IP)
|
||||
const registroIp = await ctx.db
|
||||
@@ -455,7 +456,16 @@ export const enforceRequest = mutation({
|
||||
.order('desc')
|
||||
.first();
|
||||
|
||||
if (registroIp && registroIp.categoria === 'ip' && registroIp.blacklist === true) {
|
||||
// NOTE: em desenvolvimento local, evitar bloquear loopback por blacklist,
|
||||
// senão o login e a sessão (Better Auth) ficam impossíveis.
|
||||
// Também priorizamos whitelist caso exista um registro marcado como ambos.
|
||||
if (
|
||||
registroIp &&
|
||||
registroIp.categoria === 'ip' &&
|
||||
registroIp.blacklist === true &&
|
||||
registroIp.whitelist !== true &&
|
||||
!isLoopback
|
||||
) {
|
||||
const ativo = !registroIp.bloqueadoAte || registroIp.bloqueadoAte > agora;
|
||||
if (ativo) {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user