node.js - Node https.Agent v prehliadači


Časť môjho npm modulu (typescript) používa axios na vykonávanie webových požiadaviek. Jeden z možných endpointov používa certifikáty na autentifikáciu. Pre tento scenár odovzdávam new https.Agent do axiosu, aby som poslal informácie o certifikátoch. Všetko funguje správne, ak sa modul používa v rámci Node aplikácie.

Problém je v tom, že keď sa snažím použiť svoj modul v prostredí prehliadača. Keď je v prehliadači, modul https neexistuje a nemôžem použiť svoj modul.

  • Existuje nejaký spôsob, ako použiť modul https v prehliadači?
  • Ak nie - dá sa https nejako zahrnúť do môjho modulu? Musím v tomto prípade použiť nejaký bundler (napríklad Rollup) na zostavenie TypeScript modulu?

Odpoveď č. 1

Nemôžete to urobiť. Väčšina prehliadačov podporuje autentifikáciu pomocou TLS klientského certifikátu, ale funguje to inak: používateľovi sa zobrazí okno a je požiadaný, aby vybral certifikát, ktorým sa autentifikuje. Je to podobný príbeh ako fungovanie cookies - HttpOnly cookies sa nedajú jednoducho manipulovať z JS na strane klienta.

Ak chcete TLS autentifikáciu klienta v prehliadači, ste na milosť a nemilosť výrobcu prehliadača.

Súvisiace články