[英]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.