簡體   English   中英

服務器如何將 JWT 令牌返回給客戶端?

[英]How does server return JWT token to the client?

這是我第一次遇到 JWT 令牌,我想知道該令牌在首次創建后如何返回給客戶端。

它應該出現在Authorization : Bearer header嗎?

通常,是客戶端在每個請求的Authorization : Bearer header中傳遞令牌。
我想知道在用戶通過身份驗證並創建令牌后,服務器如何將此令牌傳遞給客戶端。 也在同一個標​​題中? 在不同的標題中?

在我的情況下,服務器將生成令牌而不是作為響應,而是作為請求的一部分。

例如:-

用戶將登錄到門戶,然后單擊指向授權應用程序的鏈接。 包含用戶聲明的 JWT 將作為請求的一部分傳遞給授權應用程序。
這里最好的方法是什么? 獲取還是發布? 標題(哪個)? 請求參數? POST 身體? 謝謝!

沒有關於如何將 JWT 令牌返回給客戶端的標准,但是,請檢查此 URL,它可以回答您的問題

https://github.com/dwyl/hapi-auth-jwt2/issues/82#issuecomment-129873082

將 JWT 令牌放在 Authorization 標頭中使我們可以靈活地在 Web 應用程序中發送實際響應。 對於僅 REST 的應用程序/API,您可以自由地將 JWT 作為響應正文或 cookie 發送。 重要的是客戶端如何存儲 JWT 並將其發送回服務器,這在 Authorization 標頭(或 Cookie 或 URL 令牌,如果您願意)中完成👍

至於存在於“wild”中的這種情況,我還沒有看到服務器向客戶端發送 Authorization 標頭的示例,但規范中沒有任何內容表明這是一種反模式。 見: http : //self-issued.info/docs/draft-ietf-oauth-v2-bearer.html

如果您想遵守指南,您可以按照以下示例進行操作: http : //self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#ExAccTokResp

人們可能有興趣知道OAuth 2.0 標准為此目的指定了響應主體:

5.1. 成功響應

授權服務器發出訪問令牌和可選的刷新令牌,並通過將以下參數添加到帶有 200(OK)狀態代碼的 HTTP 響應的實體主體中來構造響應:

access_token
必需的。 授權服務器頒發的訪問令牌。
[...]

此外,當您可以將令牌放入 url 時,還有另一種策略。 在服務器端,您可以在 url 之后添加令牌,以防您從某些安全服務重定向 例如:

http://[my-app]/index.html?access_token=sadmopwmopmdmvsasom....

然后在 js 中你可以這樣得到它:

let url = new URL(window.location);
let accessToken = url.searchParams.get("access_token"); 

但是,請記住,這種方法不能被認為是安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM