Postacı ile başlıklara JWT jetonu gönderme


170

Aşağıdaki makaleye dayanarak JWT Token tabanlı güvenlik uygulamasını test ediyorum . Test sunucusundan başarıyla bir belirteç aldım. Chrome POSTMAN REST İstemci programının jetonu başlıkta nasıl göndereceğini anlayamıyorum.

postacı ekran görüntüsü

Sorularım aşağıdaki gibidir:

1) Doğru başlık adını ve / veya POSTMAN arayüzünü mü kullanıyorum?

2) Belirteci kodlamak için 64 temel almalı mıyım? Jetonu geri gönderebileceğimi düşündüm.


Merhaba, POSTMAN'de aldığım jwt jetonunu nereden görebilirim?
Usr

1
@ MLondei, alıcı sunucunun yapılandırılma şekline bağlıdır. Bir URL olarak geri gelebilir (URL dizesinde bulabilirsiniz) veya yanıt gövdesinde geri gelebilir (yanıtın gövde alanında bulabilirsiniz). Bunlar benim bildiğim iki ana şey.
Diyot Dan

Yanıtlar:


277

İstek üstbilgisi adı için Yetkilendirmeyi kullanın. Taşıyıcıyı Jetonun önüne yerleştirin. Sadece denedim ve benim için çalışıyor.

Yetkilendirme: Taşıyıcı TOKEN_STRING

JWT'nin her bir kısmı base64url olarak kodlanmış bir değerdir.


61
Bir açıklama olarak, "Başlık" alanı Yetkilendirme olur ve "Değer" alanı Taşıyıcı olur [WHITESPACE] <your-code-here>
Diyot Dan

Alanın hangi bölümünün şifreli olduğunu biliyor musunuz? Verilerin sondan hemen sonra olduğu anlaşılıyor. ayırıcı bana çöp karakterlere benziyor. Bunun aslında Token jeneratörü tarafından şifrelenmiş bilgi olduğunu varsayıyorum?
Diyot Dan

5
JWT.io'ya göz atın. Bir JWT'yi yapıştırabileceğiniz ve kodu çözülmüş içeriğini görebileceğiniz bir bölüm var, neler olduğunu görmenin en iyi yolu. Sunucu gizli dizesi, belirtecin son bölümünü yapmak için kullanılır. JWT sadece yükün şifrelemediğini gösterir, yani dizenin 1. ve 2. bölümünün kodunu çözebilir, ancak sır olmadan doğrulayamazsınız. self-issued.info/docs/draft-ietf-oauth-json-web-token.html
Mick Cullen

4
Birisi neden Bearer'ı JWT'nin önüne koymamız gerektiğine dikkat edebilir mi? Bu sunucuya bir JWT olduğuna dair bir sinyal midir?
user137717

3
Bu sadece kongre - tüm detayları burada bulabilirsiniz: jwt.io/introduction
Michael Noyb

134

İşte yardımcı olursa bir görüntü :)

postacı

Güncelleme:

Postacı ekibi, "yetkilendirme sekmesine" "Taşıyıcı belirteci" ekledi: Güncellenmiş postacı


40

Bu soruya JWT Apis'i test etmenize yardımcı olabilecek ilginç bir ipucu ekliyorum.

Aslında çok basit.

Giriş yaptığınızda, Api'nizde (giriş bitiş noktası) hemen jetonunuzu alacaksınız ve @ mick-cullen'in söylediği gibi, başlığınızda JWT'yi aşağıdaki gibi kullanmanız gerekecek:

Authorization: Bearer TOKEN_STRING

Şimdi otomatikleştirmek veya sadece hayatınızı kolaylaştırmak istiyorsanız, testleriniz jetonu diğer tüm uç noktalarda çağırabileceğiniz bir global olarak kaydedebilirsiniz:

Authorization: Bearer {{jwt_token}}

Postacıda: Ardından postacıda jwt_token = TOKEN_STRING şeklinde bir Global değişken yapın.

Giriş bitiş noktanızda: Yararlı hale getirmek için Testler Sekmesinin başına ekleyin:

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);

Ben senin api yanıt olarak json olarak jeton olarak iade tahmin ediyorum: {"jwt_token": "TOKEN_STRING"}, bir çeşit varyasyon olabilir.

İlk satırda veri değişkenine yanıt eklersiniz. Global'inizi temizleyin Ve değeri atayın.

Böylece, global değişken üzerinde simgeniz var, kullanımı kolaylaştıran Yetkilendirme: Taşıyıcı {{jwt_token}}.

Umarım bu ipucu yardımcı olur.



Okunacak bir şey DÜZENLE

Postacı üzerindeki testler hakkında: test örnekleri

Komut Satırı: Newman

CI: Jenkins ile entegrasyon

Güzel blog yazısı: usta api test otomasyonu


İlginçtir, Testsekme kavramına ve Postacı kodlamasına aşina değilim . Buna başlamak için önerdiğiniz bir kaynak var mı?
Diyot Dan


Aslında Postman, otomatik test söz konusu olduğunda gerçekten ilginç ve oldukça güçlü. Postacıyı, rastgele veriler Global değişkenler veya testlerde çalıştırabileceğiniz Ortam değişkenleri oluşturabilecek şekilde yapılandırabilirsiniz. Ve yinelemeli çalışmalar yapın ve uç nokta birimi testleri olarak herhangi bir yanıtı test edin. Bunları kaydedin ve kodu değiştirdiğinizde hata bulun. Komut satırı yardımcı programını kullanmadım, ancak bunu ci-pipeline'ınızda çalışacak şekilde yapılandırabileceğinizi anlıyorum.
Pablo Palacios

Komut satırı hakkında buradan okuyabilirsiniz: getpostman.com/docs/newman_intro
Pablo Palacios

9

Ben Flaskaynı ( Authorization: Bearer <token>) aynı ( ) olan ilk 2 çözümleri denedikten sonra ve bu elde:

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}

Sonunda kullanarak çözmeyi başardı:

Authorization: jwt <token>

Aynı şeyle karşılaşan insanlara biraz zaman kazandırabileceğini düşündüm.


1
Ben başlamıştı Authentication credentials were not providediçinde djangokullanarak Bearer <token>. ile çözüldü jwt <token>. Çözüm için teşekkürler
S_M

8

Jetonu otomatik olarak nasıl ayarlayacağınız aşağıda açıklanmıştır

Giriş / kimlik doğrulama isteğiniz üzerine

resim açıklamasını buraya girin

Ardından kimliği doğrulanmış sayfa için

resim açıklamasını buraya girin


4

Postacıyı doğru kullanmak istiyorsanız, başlıkları bu şekilde kullanmaktır

anahtar: Yetkilendirme

değer: jwt {token}

kadar basit.


2

Wordpress eklentisini kullanan kişiler için JWT Kimlik Doğrulamasını açmak için Gelişmiş Erişim Yöneticisi .

Başlık alanı Yetkilendirme yerine Kimlik Doğrulaması koymalıdır

resim açıklamasını buraya girin

AAM belgelerinde bahsetti ,

Not! AAM , çoğu Apache sunucusu tarafından atlandığı için standart Yetkilendirme üstbilgisini kullanmaz . ...


Umarım birine yardım eder! Diğer cevaplar için teşekkürler çok bana yardımcı oldu!


2
  1. Postacıyı aç.
  2. "başlık" alanına git.
  3. orada "anahtar değeri" boşlukları görebilirsiniz.
  4. "Yetkilendirme" anahtar türünde.
  5. "Taşıyıcı (boşluk) your_access_token_value" değer türünde.

Bitti!


2

resim açıklamasını buraya girin

Diğer her şey yani. Parametreler, Yetkilendirme, Gövde, Ön İstek Komut Dosyası, Testler boş, sadece Üstbilgiler sekmesini açın ve resimde gösterildiği gibi ekleyin. GET isteği için de aynı şey geçerli.


0

Bir şekilde postacı benim için çalışmadı. İşe yarayan RESTED adlı bir krom uzantı kullanmak zorunda kaldım.


0

Ben nasıl moplin bahsetti. Ama benim durum servis JWT yanıt başlıkları, "Yetkilendirme" altında bir değer olarak göndermek.

Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ

Yaptığım şey, postacıda Global değişken yapmak

key-> jwt
value-> blahblah

giriş isteği-> Testler Sekmesinde, ekle

postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));

diğer isteklerde, Başlıklar sekmesini seçin ve

anahtar-> Yetkilendirme

değeri -> {{jwt}}


0

Postman'da en son sürüm (7 ++) Yetkilendirmede Taşıyıcı alanı olmayabilir Bu yüzden Başlık sekmesine gidin

Yetkilendirme olarak anahtarı seçin ve JWT değerine yazın


V7.19.0 + için ve bir süredir orada Bearer Token, Authorizationsekmede bir token var, token değerini buraya (Hardcoded veya dinamik değişken olarak) ekleyerek Authorizationistek için aynı başlığı oluşturacak .
Danny Dainton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.