Autentifikācija
Viens akreditācijas datu veids un veidi, kā pieprasījums tiek noraidīts.
Galvene
Bāzes URL ir api.openemail.uk. Katrs pieprasījums nes atslēgu Authorization galvenē.
Authorization: Bearer oe_live_9f2c1a4b7e05d3862c1f0a44_kX7…Nekas cits šeit neautentificējas. Gan sesijas sīkdatne, gan sesijas marķieris tiek noraidīti ar invalid_credential_type, kas nosauc, kādi akreditācijas dati jāsūta to vietā, nevis atstāj jūs minēt pie kaila 401.
Pārbaudiet, vai atslēga darbojas
GET /ping ir ātrā pārbaude: tai nevajag nevienu tvērumu, un tā pastāsta, kas ir šī atslēga.
curl "$OE/ping" -H "$AUTH"{ "ok": true, "keyId": "4c1b257a66287fd113bd89d0", "mode": "live", "scopes": ["emails:send", "emails:read"], "roleId": null, "grantedScopes": ["emails:send", "emails:read"], "workspaceId": "10417196-e324-4283-af98-66ec62167c47"}Ja šis darbojas, bet kaut kas cits atbild ar 401, problēma ir tvērumā, nevis atslēgā.
scopes ir EFEKTĪVAIS saraksts un vienīgais, kas kaut ko autorizē. grantedScopes ir tas, ar ko atslēga tika izsniegta, un abi atšķiras tikai tad, kad atslēgu ierobežo loma. Tvērumu lapa šo šķēlumu izskaidro. roleId vērtība null nozīmē, ka griestu nav, un tas ir plašākais, ko atslēga var iegūt.
Apskatiet, kā atslēga drīkst sūtīt
GET /addresses ir atbilde uz negaidītu 403.
curl "$OE/addresses" -H "$AUTH"{ "object": "list", "unrestricted": false, "data": [ { "object": "address", "address": "[email protected]", "enabled": true, "canSend": true }, { "object": "address", "address": "[email protected]", "enabled": true, "canSend": false } ], "domains": [ { "domain": "acme.com", "receivingVerified": true, "sendingVerified": true, "catchAll": false } ]}canSend: false ir trīs iemesli: adrese ir izslēgta, atslēgas sūtīšanas tvērums to neietver (ne tās domēns, ne pati adrese nav uz atslēgas) vai domēns vēl nevar parakstīt. enabled uz adreses un sendingVerified uz tās domēna šos gadījumus nošķir, un tieši to šis galapunkts ietaupa lielāko daļu atkļūdošanas laika. Domēns var būt verificēts saņemšanai un tomēr nespēt sūtīt.
unrestricted: true nozīmē, ka tiek pieņemta jebkura lokālā daļa uz verificēta domēna, tostarp tāda, ko neviens vēl nav izveidojis.
Kā atslēga tiek noraidīta
| Kods | Nozīme |
|---|---|
| missing_api_key | Nav nekādas Authorization galvenes. |
| invalid_credential_type | Sīkdatne vai sesijas marķieris. Sūtiet API atslēgu. |
| invalid_api_key | Nav mūsu izsniegta atslēga vai noslēpums nesakrīt. |
| revoked_api_key | Izsniegta šeit, tad atsaukta. Apzināti nošķirts. Tā ir atšķirība starp piecu minūšu labojumu un pēcpusdienu. |
| expired_api_key | Izsniegta šeit, tad beidzies termiņš. |
| insufficient_scope | Īsta atslēga, bet bez tvēruma, kas šim galapunktam vajadzīgs. |
Atsaukšana stājas spēkā ar nākamo izsaukumu. Rinda pēc tam paliek atslēgu lapā, tāpēc joprojām var saprast, vai atslēgas nogalināšanas brīdī kaut kas to lietoja. Noderīgākais stāvoklis tajā ekrānā ir “nekad nav lietota”, jo tieši tā noplūdusī atslēga tiek atšķirta no dzīvas atkarības.
Rotācija ir otrs veids, kā izņemt noslēpumu no aprites. Tā izveido jaunu noslēpumu tai pašai atslēgai, tāpēc id, nosaukums, tvērumi, loma, sūtīšanas tvērums un visas pieprasījumu un aktivitātes rindas turpinās; mainās tikai noslēpums. Vecais pārstāj darboties tajā pašā mirklī, kad rotācija pabeigta, bez pārklāšanās perioda, un aizstājējs tiek parādīts vienu reizi. Konsolē tas ir tajā pašā izvēlnē, kur Atsaukt, un vispirms prasa atkārtoti verificēties. Atslēga ar keys:write var rotēt pati sevi ar POST /keys/self/rotate, un tieši tā integrācija rotē pēc grafika, nevienam neatverot konsoli.