Javascript-API
OBS: Dagens version av BankID använder inte längre Javascript-API:et, utan kör istället BankID-Cava
Officiell dokumentation[redigera]
För de bitar av Javascript-API:et som rör s.k. förlitande part finns den officiella dokumentation tillgänglig för allmänheten (troligen släpptes den i november 2010, i samband med "BankID-dagarna". I alla fall länkas den från en PDF därifrån). Detta gäller signering och hämtning av versionsnummer, men inte t.ex. hämtning av nya e-leg.
http://www.bankid.com/rp/info/
Informationen nedanför baseras på reverse engineering eftersom dokumentationen inte fanns tillgänglig när FriBID-projektet startades. Det verkar inte vara några större skillnader mot den officiella dokumentationen, men det återstår att kolla igenom alla detaljer.
Introduktion[redigera]
Javascript-API:et bygger på att man gör funktionsanrop på <object>
-element med BankID- eller FriBID-pluginen.
Elementen görs normalt osynliga eftersom all kommunikation med användaren sker från separata fönster.
Här är en lista över alla objekt-typer som finns, vad de gör och om de stöds av FriBID.
Namn | MIME-typ | Beskrivning | Stöds av FriBID |
---|---|---|---|
Authentication | application/x-personal-authentication | Används för att skapa XML-signaturer för inloggning | Ja |
Regutil | application/x-personal-regutil | Används för att hämta ut nya e-leg | Ja, sedan v. 0.3.0 |
Signer2 | application/x-personal-signer2 | Används för att skapa XML-signaturer för underskrifter. | Ja |
Version | application/x-personal-version | Används för att få en sträng med versionsnummer, "bäst före"-datum, och märke på ev. kortläsare | Ja |
Webadmin | application/x-personal-webadmin | Verkar användas för att synkronisera "bäst före" datumet på klienten | Finns, men gör inget alls. Gör att test.bankid.com fungerar. Finns i version 0.3.0 |
Logout | application/x-personal-logout | Verkar inte användas för BankID, men stöds av den officiella programvaran | |
Signer | application/x-personal-signer | Finns, men gör inget alls. Behöver finnas (men inte fungera) för att kunna logga in på vissa sidor. |
HTML-koden för ett object
-element kan t.ex. se ut så här:
<object id="signerPlugin" type="application/x-personal-signer2" width="0" height="0"></object>
Sedan december 2010 / januari 2011 stödjer den officiella klienten bland annat signering av filer (t.ex. PDF) och har även uppdaterats med ett nytt värde: "UHI" (vilket troligen står för Unique Host Identifier). Detta används i både versionssträngen (kanske inte helt bra ur integritetssynpunkt...) och i signaturer (som nu även innehåller en "ticket" från uppdateringsservern). Detta stöds inte av FriBID än.
Version-objekt[redigera]
Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)
Authentication- och Signer2-objekt[redigera]
Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)
Regutil-objekt[redigera]
Se filen tests/test-req.html för ett exempel på hur detta objekt används.
Webadmin-objekt[redigera]
Används på test.bankid.com.
GetLastError
- Parametrar
- Inga.
- Returvärde
- (Heltal) Senaste felkoden.
PerformAction
- Parametrar
- namn (Sträng) Vilken åtgärd som ska utföras
- Returvärde
- (Heltal) Felkod.
- Beskrivning
- Används för att utföra någon av följande åtgärder (stora/små bokstäver i namnen har ingen påverkan). Felkoden returneras och kan även hämtas med GetLastError. Om en felaktig åtgärd anges blir felkoden InvalidAction.
Namn Beskrivning RenewPollDates Skjuter fram "bäst före"-datumet med 30 dygn. Kan endast utföras från bankid.com. Annars blir felkoden DomainNotAllowed
Felkoder[redigera]
Namnen är specifika för FriBID. Dessa finns definierade i filen common/biderror.h i källkoden.
Namn (i FriBID) | Kod | Beskrivning |
---|---|---|
OK | 0 | |
InternalError | 1 | Specifik för FriBID. Används när ingen annan felkod passar in. |
UserCancel | 8002 | |
InvalidParameter | 8004 | |
InvalidAction | 8008 | |
DomainNotAllowed | 8011 | |
InvalidPIN | 8013 | |
InvalidValue | 8014 | |
NotSSL | 8015 | |
MissingParameter | 8016 | |
ValueTooLong | 8018 | |
HostnameIsIP | 8019 | |
BlockedPIN | 8102 |