JWT / JSON Web令牌:在创建时可以安全地传递正文中的令牌吗?

时间:2017-04-19 08:11:07

标签: jwt

我是JWT的新手。我有一个会话创建端点。我的移动应用程序发出了请求。目前我拥有它,以便当用户成功登录时,我将在授权承载标题中返回JWT:

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

但是,从我的客户端读取这个有点棘手。我可以安全地在JSON响应中返回它吗?

1 个答案:

答案 0 :(得分:5)

当客户端将其凭据发送到服务器(以交换它们作为令牌)时,最近发布的令牌可以作为文本或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为前缀,表示身份验证架构。这个answer将对此有所了解。

最后,值得一提的是Authorization标头设计用于请求,而不是响应