2016-11-07 50 views
0

我爲我的網站設計了REST API。我閱讀了關於正確的JSON-API的一些信息。而現在起草的版本是這樣的:我應該將JWT放在JSON上作爲base64字符串嗎?

{ 
"data": 
    { 
    //data that I will send 
    }, 
"errors":"", 
"meta": 
    { 
    "token": // auth info for ever request 
     { 
     // JWT token here 
     } 
    } 
} 

但我應該把JWT令牌爲base64字符串就像我無法理解: "token" : "base64encodedstring"

,或者我應該把智威湯遜在「令牌」嵌套的對象嗎?

另外我有問題。我是否明白,在任何地方都使用一次設計的JSON-API是一種很好的做法?我的意思是相同的JSON(不同的data部分將用於身份驗證,用於數據交換等)

+0

當你創建(簽名)一個令牌時,它已經是一個'Base64Url'編碼的字符串,或者更準確的說,是一個由兩個到三個'Base64Url'編碼的字符串連接起來的字符串(你是否簽了字)看起來像這樣(修剪)eyJhbGci [...] eyJzdW [...]。TJVA [...]'。當你想用它來授權時,你通常會發送一個Basic-auth請求:'Authorization:Bearer ',你的服務器負責通過比較它的簽名來檢查該令牌的真實性。所以是的,你應該使用這個編碼的字符串。第二個問題:簡短的回答 - 是的更有意義。 –

回答

0

如果JWT採用緊湊的序列化格式(3或5個由點分隔的部分),則沒有必要編碼它。 否則,如果它是平面或一般序列化格式(一個JSON對象),那麼你將不得不對它進行編碼。

相關問題