有一个适用于多平台应用程序的API。访问大部分功能需要授权。授权基于JWT令牌。工作流程如下所示:
第一步。客户端将POST请求正文中的凭据发送到/user/authenticate/
。如果凭据有效,则服务器将使用一对JWT令牌进行响应。这些都保存在响应正文中:
{
"access": "eyJ0eXAiOiJKV1Q.LCJleHAiOiIxNC4wMi4yMDE5IDE1OjEx.lUPAKbdYwkRt3vMBY",
"refresh": "eyJ0eXAiOiJKV1Q.iwiZXhwIjoiMTQuMDMuMjAxOSAxNDo0M.iidNaxbMflEadVSS"
}
进一步的步骤。第一步中获得的令牌保存在客户端。当客户端向服务器发送请求时,access token
将附加到请求标头中。标题看起来像这样:
Authorization: Bearer eyJ0eXAiOiJKV1Q.LCJleHAiOiIxNC4wMi4yMDE5IDE1OjEx.lUPAKbdYwkRt3vMBY
刷新令牌。一切都保持不变,直到令牌的到期时间接近为止。客户端决定刷新令牌时,应将POST请求发送到/user/extend-token/
。为了获得新的令牌对,客户端必须提供有效的refresh token
。
问题是-在向服务器的传输过程中,refresh token
应该保留在哪里:在请求正文中(就像第一步中的凭据一样),或者在标头中(就像{ {1}}在对API的常规请求中)?