Both sides previous revision Previous revision Next revision | Previous revision |
kb:api_auth [2024/11/13 11:32] – ognjen.bogicevic | kb:api_auth [2024/11/20 10:20] (current) – ognjen.bogicevic |
---|
====== Generisanje tokena ====== | ====== Generisanje tokena ====== |
| |
Generisanje sesijskog tokena koji se koristi pri pozivu metoda koje prikazuju ili menjanju podatke sistema. | Generisanje sesijskog tokena koristi se pri pozivu metoda za prikaz ili izmenu podataka u sistemu.\\ |
| API zahtev dostupan je u SOAP i REST formatima podataka.\\ |
| Za oba formata istu su nazivi i tipovi atributa samo je drugačija struktura podataka XML ili JSON.\\ |
| Sve opisane status kodove možete pronaći na [[:kb:web_api:http_codes|HTTP status kodovi]]. |
| |
==== REST ==== | ===== Zahtev ===== |
| |
| === REST Endpoint === |
| |
<code> | <code> |
</code> | </code> |
| |
^Naziv^Vrsta^Opis^Revizija| | === SOAP Endpoint === |
|username|String, obavezno za SOAP|Za sada se ne koristi, slati prazan string. Jedinstvena šifra firme kojoj se pristupa. Šifra se dobija prilikom instaliranja modula za pristup ERP-u preko web servisa. Nepromenjiva je i jedinstvena za svaku firmu sa kojom se radi. \\ REST verzija servisa nema ovaj parametar.|24-11-13| | |
|password|String, obavezno|Korisnički nalog iz Balans ERP-a pod kojim se vrše operacije nad API-jem. \\ Nalog otvara administrator Balnas ERP-a i tom prilikom postavlja privilegije koje nalog ima. \\ Aktivnosti sa weba biće vezane za ovaj nalog.|24-11-13| | |
|duration|String, obavezno|Korisnička lozinka dodeljena korisniku prilikom otvaranja naloga u Balans ERP-u.|24-11-13| | |
|company|Integer, obavezno|Broj minuta koliko će sesija biti otvorena. Broj mora biti između **1** i **480**. Nakon isteka ovog perioda korisnik mora zahtevati novi //session token//.|24-11-13| | |
| |
==== SOAP ==== | <code> |
| POST https://ws.melany.rs/api/soap/auth |
| </code> |
| |
GetToken (companyCode, userName, userCode, sessLen, [authUser], [authCustomer]) | ==== Ulazni parametri ==== |
| |
| ^Naziv^Tip^Obavezno^Opis^Revizija| |
| |username|String|Obavezno polje|Korisničko ime koje se koristi za autentifikaciju.|24-11-13| |
| |password|String|Obavezno polje|Korisnička lozinka dodeljena korisniku prilikom otvaranja naloga.|24-11-13| |
| |duration|Integer|Nije obavezno polje|Trajanje autentifikacijskog tokena se izražava u minutama. Ako nije specificirano ili je vrednost postavljena na 0, podrazumevano vreme trajanja tokena je 24 časa.|24-11-13| |
| |company|Integer|Obavezno polje|Identifikator kompanije ili entiteta koji zahteva autentifikaciju.|24-11-13| |
| |
===== Rezultat ===== | ===== Rezultat ===== |
| |
**String** sessToken; Niz karaktera, određenog roka trajanja, koji jedinstveno identifikuju korisnika i sesiju u kojoj radi. | ^Naziv^Tip^Opis| |
| |code|String|Niz karaktera, određenog roka trajanja, koji jedinstveno identifikuju korisnika i sesiju u kojoj radi.| |
===== Parametri ===== | |expires|Date|Datum i vreme istak tokena prema postavljenom parametru "duration".| |
| |
==== SOAP ==== | |
| |
^SOAP naziv^REST naziv^Vrsta^Opis^Revizija| | |
|companyCode|-|String, obavezno za SOAP|Za sada se ne koristi, slati prazan string. Jedinstvena šifra firme kojoj se pristupa. Šifra se dobija prilikom instaliranja modula za pristup ERP-u preko web servisa. Nepromenjiva je i jedinstvena za svaku firmu sa kojom se radi. \\ REST verzija servisa nema ovaj parametar.|19-6-11| | |
|userName|id|String, obavezno|Korisnički nalog iz Balans ERP-a pod kojim se vrše operacije nad API-jem. \\ Nalog otvara administrator Balnas ERP-a i tom prilikom postavlja privilegije koje nalog ima. \\ Aktivnosti sa weba biće vezane za ovaj nalog.|19-6-11| | |
|userCode|pwd|String, obavezno|Korisnička lozinka dodeljena korisniku prilikom otvaranja naloga u Balans ERP-u.|19-6-11| | |
|sessLen|len|Integer, obavezno|Broj minuta koliko će sesija biti otvorena. Broj mora biti između **1** i **480**. Nakon isteka ovog perioda korisnik mora zahtevati novi //session token//.|19-6-11| | |
|authCustomer|cust|String, opciono|Korisnički nalog, identifikovanog od strane provajdera, Balans komitenta (kupca ili dobavljača).|19-6-11| | |
|authUser|usr|String, opciono|Korisnički nalog Balans korisnika u čije ime se vrše operacije (za potrebe ekstenzija Balans ERP-a, npr. mobilna prodaja, sindikalna prodaja, servisiranje itd.) \\ Ukoliko parametar nedostaje ili je džoker-znak (%), uzima se vrednost parametra userName, što znači da mora da postoji isti korisnički nalog (ne ime i prezime) korisnika u Balansu|19-6-11| | |
| |
===== Primeri ===== | ===== Primeri ===== |
| |
==== SOAP ==== | === REST Zahtev === |
| |
=== Zahtev === | |
<code> | <code> |
| |
POST https://ws.melany.rs:8191/LogIn/LogIn HTTP/1.1 | curl -X 'POST' \ |
Accept-Encoding: gzip,deflate | 'https://ws.melany.rs/api/rest/auth' \ |
Content-Type: text/xml;charset=UTF-8 | -H 'accept: application/json' \ |
SOAPAction: "" | -H 'Content-Type: application/json' \ |
| -d '{ |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.bort.com/"> | "username": "melany", |
<soapenv:Header/> | "password": "password", |
<soapenv:Body> | "duration": 0, |
<ser:GetToken> | "company": 10 |
<companyCode>1</companyCode> | }' |
<userName>Nalog</userName> | |
<userCode>sifra_naloga</userCode> | |
<sessLen>20</sessLen> | |
<authCustomer>nalog_komitenta</authCustomer> | |
<authUser>balans_nalog</authUser> | |
</ser:GetToken> | |
</soapenv:Body> | |
</soapenv:Envelope> | |
| |
</code> | </code> |
| |
<code> | <code> |
HTTP/1.1 200 OK | { |
Server: GlassFish Server Open Source Edition 4.1.2 | "code": "eyJjdHkiOiJKV1QiLCJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.gI21vCXCCrQms35AWsEj_C5xYDhn_23Sdmbd-J1mx4tQkAqAsLG2JgwQSKaMHcNfHA0pKSFJ5q_9uf-zhRRX0KzCvo6-ZLrqpb6UccIRSGIrCXtFUtRKGPX2g6ruqhj2S7IMoGavisGP7C4xaYkD3KjM5obXvWaEgphBlvotGk8D2z9GbtgVNKGpTyX5JLvceUo4FGFWHtHlXwEYtLAFi8BP_gD0BkCspXEra9CdGx7JS-hwKDzbDmtVH1NoOAMdMpk0SySjay_TNrj-qCx7UuHkusqumgA2aoWWz-W_HEy6KJnRw-nQjBYsz3hm380QI4-leusaaCt-hXAQc7gWpQ.cfFmJD-9FdeM7uS8.BegAuobF5oQuNyDAsWIFUx_kW7Tb4fyGjXAbyTNRQHIRuufZqNJAGBubkqw0zmY9M5Opmk8INy057U0PbtSOWfv9s5PC2cIGyqLpNa4L8X3o_E-ID_W0R1acX5f9QFv1iQA9YXUG9OBZ1stn6fP7wjO-YpAWZEQFkj45Mnjwp2P1cB63BO3GX8l26qKkP7dvcH_-y8aJ6DtBle0zVm0HZmtipaU5rfN0-U13ffEG9RXe0pUWyBngwRe6ZLEca2pe9NUNllFUtiUnuoe_P4qZ2797Ocvrlx7r8wzAzfvzMNYzFWLXweKjN4Zfp5eeH7DVVBJoeSLuNfUeCDI3K5T0k2BTZDCpBYHJfulx-aaSmhwcXd4omqhgO6uikYk_5mzamSDIepElcNfz-PNgMZ9a5p0z_AoltF63MjVqd_PJHLJOtRrbdJDnVBUJ2d0_O4PzpO15rh7e0vt9ob-yNUA3GGKbCv0gngzDKALSX7RLWRmkSxQom6pAQq2r1m6YUnSoaMymVSt_4couIFJhcDUiLZzPHeIAZluYdmODVT_P7UAqDF3fpP6XCgKwOnnMh24Wg0LbAdFK6HhMO8M2jTLcNl43yeq5iuOkrzBEa5lsDQFwVIQF6uMevht6VAVH8o6vlJuHew3B3GfpuvgczoqD6-7hPfYfL01FMA8yKuH4oARpeE5h7nr9b80NQ7sOF9w9qamh12mDf-jNOQqeVImHALcJzqRYEMCwt3sfI-JUi6yNrlGaXnOmju_Mec9t7NT-euIbFcQ8ENfEG5CfB3gHYZmhbwFXqWICaYFKxtzZSQPyUJKIcXlh1tCHU4eLS-nHjNJGLyTa7o9sON8xlNH-ZIzgxj29Uz4bjLW7taaT20BCG4K31JF7QUu4pDBvFxhnSsECrY1aVdiIHYTegNWO5f9YtbDKm78jakKcEbjrqSQE2T9W-hm6-S9SFSoHonhUk9xSXyPu8H7K4F-eMGDGyOerpMewjm_PZW-aFdWue6Uo_Sa9aXXwchc7B-hkalVNVfK-S288ltzzjVqTqVJLHsQPfzG_gBv9YoYtQRlJWi_n-ZGkfRld0N-G1JKeZxTZabN0XZGzNWGO2T49M3lreJ6XLQoz0O-zv3foUImBWng7oFuhwtWbMZi_aQgr7hmdsCF8YM0tsXfXIUuN1F_ivOhmmQe43tzAsIVXxouYmoT4ANKcDCO5qA2Ucz0d1aH0wO48SueKa14BAzE88YZcBcN2Q1I6hrwT9CL7Y23GEJ1zNYhduNFg_C7qDqiB1yQ0R6Cn3zaNU3Sm1EEzdyPQEcrB1y1Ab4Pf5GS30JVD9M4ysg8-xUqnCamjn75K849gaw6u.kbnbsleJG4VJoSyPnZzOOQ", |
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1.2 Java/Oracle Corporation/1.8) | "expires": "2024-11-14 12:53:24" |
Server: grizzly/2.3.23 | } |
Content-Type: text/xml; charset=utf-8 | |
Transfer-Encoding: chunked | |
| |
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> | |
<S:Body> | |
<ns2:GetTokenResponse xmlns:ns2="http://services.bort.com/"> | |
<return>20010110091424109009</return> | |
</ns2:GetTokenResponse> | |
</S:Body> | |
</S:Envelope> | |
| |
</code> | </code> |
| |
| |
==== REST ==== | |
| |
=== Zahtev === | |
| |
<code>https://ws.melany.rs:8191/BortApp-war/rs/login/gettoken?id=balans_username&pwd=balans_password&len=30</code> | |
| |
Napomena: Ukoliko //username// ili //password// sadrže komandne karaktere URL-a (''&'',''+'',''='') neophodno ih je zameniti ANSI kodom. | |
| |
^Karakter^Kod| | |
|+|%2B| | |
|&|%26| | |
|=|%3D| | |
| |
=== Odgovor === | |
| |
^HTTP kod^Opis^Revizija| | |
|200 OK|Dobija se token u formi //application/json//, npr. ''{"token" : "1712201622047865"}'' |19-6-11| | |
|401 Not Authorized|Dobija se tekst greške u //application/json// zapisu|19-6-11| | |
|500 Server Error|Bilo koji drugi tip greške u //application/json// zapisu|19-6-11| | |
| |
\\ | |
| |
| |