2016-11-07 48 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对象),那么你将不得不对它进行编码。

相关问题