2015-10-11 27 views
5

JWT ve flask-jwt kullanarak yeniyim, bu yüzden dokümanlar içinde bulduğum example'u çalıştırıyorum. JWT'yi daha iyi anlamak için this'u okudum.flask-jwt Bir belirteci nasıl ele alırsınız?

Ama şimdi birden fazla belirteci nasıl ele almalıyım acaba? Bir kullanıcı kimlik bilgilerini "myserver/auth" olarak gönderiyor ve sonra bir jetonu bir istemciye gönderiyor. İstemci yeni bir istek gönderdiğinde, belirteci göndermeliydi.

Sorumu, "jetonun" hangi kullanıcı ve "belirteçleri" nin nerede depolandığını nasıl bildiğimi sormak istiyorum. (.):

  • Üstbilgi
  • Faydalı yük

Bu nedenle, JWT'de tipik olarak aşağıdaki gibi görünüyor

  • İmza

  • +0

    Sonunda bunun aptalca bir soru olduğunu anladım. Yakında cevaplayacağım. – Ricardo

    +0

    Bu hafta sonu bir cevap yazacağım. – Ricardo

    cevap

    2

    JWTS olan nokta ile ayrılmış üç bölümden oluşmaktadır.

    xxxxx.yyyyy.zzzzz 
    

    en üstbilgi RFC ve this

    göre kısa bir özet bakalım

    başlık tipik olarak iki bölümden oluşur: JWT'de token, tipini ve müzakere algoritmasının gibi HMAC SHA256 veya RSA.

    { 
        "alg": "HS256", 
        "typ": "JWT" 
    } 
    

    Faydalı yük

    belirteci ikinci bölümü iddialarını içeren yükü vardır. Hak talepleri, bir varlık (tipik olarak kullanıcı) ve ek meta veriler hakkında ifadelerdir. Bu ilginç bölüm, çünkü jetonun içinde ait olup olmadığını kontrol edebiliriz. { "kullanıcı adını": "1234567890", "expiration_date": "2016-05-129" }

    yeni bir belirteç oluşturduğunuzda böylece biz tanımlamak için kimliği ekleyebilir yükü içeren olacak verileri belirtebilirsiniz Bir kullanıcı ve expiration_date yeni bir tane sormak için zaman olup olmadığını kontrol etmek için.

    İmza

    Eğer kodlanmış başlık, kodlanmış yükü, bir sır, başlıkta belirtilen algoritma almak ve bu imzalamak zorunda imza bölümünü yaratmak. İmza, JWT'nin gönderenin kim olduğunu söylediği ve iletinin yol boyunca değiştirilmediğinden emin olmak için kullanılır. Biz sunucu tarafında bizim gizli anahtarı tutmalı

    Sunucu tarafı, dolayısıyla geçerli bir yükü şifresini çözmek ve ait olduğu kullanıcı kontrol edebilirsiniz. Bu şekilde, mağaza jetonlarından sakınmaktayız, çünkü her jeton, kullanıcılarımızı doğrulamak için yeterli veri depolar. yenilenmiş kodu oluşturması gerekir istemci tarafında

    süreç belirteci ?: yenilemek nasıl

    aynıdır, bu nedenle istemci tarafında bir yenilemek servisinin (www.myhost gibi HTTP istek için sormalısınız.yenile/yenile) ve yenisini oluşturmak için eski belirteci gönder. Kullanıcının o jetona ait olduğunu kontrol edebileceğinizi unutmayın, dolayısıyla yenileme jetonunun aynı yükü içermesi gerekir, ancak son kullanma tarihi farklıdır.

    Tekli oturum açma

    Biz single sign-on gibi daha stratejilerle JWT'yi kullanabilirsiniz aynı anda kaydedilir aynı kimlik bilgileriyle yalnızca bir kullanıcı sağlamak için.

    +3

    Gerçekten "https: // jwt.io/Introduction /' adresinden birebir kopyaladım ve orijinal yazar (lar) kredisini geri bağlayarak vermediniz. Fikri mülkiyet hırsızlığı için BOO. BOOOOOOO. –

    İlgili konular