2017-04-19 136 views
1

我是JWT的新手。我有一個創建會話的端點。我的移動應用程序提出請求。目前,我有這樣,當在一個成功的用戶登錄,我在授權承載頭返回JWT:JWT/JSON Web令牌:安全地在創建時傳遞正文中的令牌?

new_conn 
|> put_status(:created) 
|> put_resp_header("authorization", "Bearer #{jwt}") #<----------- 
|> render("show.json", session: user) 

然而,這是一個小技巧,從我的客戶端閱讀。我是否可以安全地在JSON響應中返回它?

回答

2

當客戶端發送其證書服務器(交換他們的令牌)最近發佈的令牌可以在響應有效載荷爲文本或JSON返回,它給你:

HTTP/1.1 200 OK 
Date: Wed, 19 Apr 2017 09:51:12 GMT 
Content-Type: text/plain 

xxxxx.yyyyy.zzzzz 
HTTP/1.1 200 OK 
Date: Wed, 19 Apr 2017 09:51:12 GMT 
Content-Type: application/json 

{ "token" : "xxxxx.yyyyy.zzzzz" } 

你必須記住的是客戶端和服務器之間的通信。它必須通過HTTPS完成,以確保消息不會被篡改。


而當客戶端發送的令牌服務器,應該在Authorization標題(再次通過HTTPS)發送:

GET /api/greetings HTTP/1.1 
Host: example.org 
Authorization: Bearer xxxxx.yyyyy.zzzzz 

Authorization頭應該攜帶憑據 。當談論基於令牌的認證模式時,令牌是憑證,並且經常以Bearer作爲前綴,指示認證模式。

這是值得一提的是Authorization頭被設計成在請求,而不是在響應使用。

+1

非常感謝cassio – Edmund