solveChallenge(token, options?) JWT challenge token’larını eşzamanlı olarak çözer. Testlerde ve araçlarda kullanın — üretim istek işleyicilerinde değil.
solveChallenge(), tarayıcı widget’ı tarafından kullanılan iş kanıtı algoritmasının aynısını çalıştırır, ancak Node.js’te eşzamanlı olarak. Üretim istek işleyicilerinde kullanım için değil, challenge ve verify uç noktalarınızın otomatik testi için tasarlanmıştır.
Tek bir token girişi için bir ChallengeSolution ({ nonce: string; hash: string }) veya bir dizi giriş için ChallengeSolution[] döndürür. Herhangi bir koruyucuya çarpılırsa veya bir token geçersizse undefined döndürür. Bir dizi çözülürken, herhangi bir token başarısız olur olmaz undefined döndürülür — kısmi sonuçlar döndürülmez.
import { createChallenge, solveChallenge, verifySolution } from 'ribaunt';// Use low difficulty in tests for speedconst tokens = createChallenge(3, 2, 60);const solutions = solveChallenge(tokens);if (solutions) { const valid = await verifySolution(tokens, solutions); console.log('Valid:', valid); // true}
Koruyucularla:
const solution = solveChallenge(token, { maxDurationMs: 2000, maxIterations: 500_000,});if (!solution) { console.log('Solver gave up — difficulty too high or timeout reached');}
solveChallenge eşzamanlı ve CPU yoğundur. Üretim HTTP istek işleyicisinde asla çağırmayın — Node.js olay döngünüzü bloklar.
Testlerde zorluk 3–4 kullanın. Zorluk 5 test paketinizi gözle görülür şekilde yavaşlatır.