簡體   English   中英

當我使用 jwt 令牌時,我如何進行 paretoken?

[英]how can i paretoken when i use jwt token?

我在 url 中有這樣的值

          console.log("url:",url)
              url: demo://app?accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcm92aWRlciI6Imtha2FvIiwiaWF0IjoxNjE4MzIwOTg1fQ.Ver4V9lOBamkgU-DQC91LnVZLuvkLOGgytXPnkOWsFg

我想解析url中的token,放到maintoken中。

我怎樣才能做到這一點?

這是我的代碼

    useEffect(()=>{
    Linking.addEventListener("url", ({url}) => {

    console.log("url:",url)


    const maintoken = parseToken(url);

    console.log("token:",token);
    })
    return () => Linking.removeEventListener("url");
    },[])

如果url總是以demo://app?accessToken=開頭,你可以做一個 substring。

const mainToken = url.subString(22);

我不太確定您要實施什么。 但是,如果您嘗試從 JWT 中提取值並將它們添加到前端的另一個簽名 JWT 中,那么這是不可能的。

篡改或嘗試更改散列 JWT 令牌中的值使其成為無效令牌。

使用 JWT 令牌的全部目的是確保沒有人可以篡改令牌和/或其中包含的數據。 一旦 JWT 由您使用的 JWT 模塊簽名,其簽名的目的是確保數據不能更改。

因為如果您可以更改 JWT 和 JWT 中的值仍然作為有效令牌傳遞,那么這將危及您的整個身份驗證過程。

此外,不要將 append JWT 轉換為 URL。 這是不好的做法。 如果您有記錄所有 API 調用的日志系統,那么您的令牌將記錄在日志中,因為 URL 通常保存在日志中。 任何有權訪問日志的人都可以解碼令牌並出於惡意原因使用令牌中的有效負載。 請改用 HTTP 接頭。

你應該做什么

  • 如果您必須在前端解碼 URL 並且沒有其他選項,請使用jwt_decode它將返回在 JWT 中散列的有效負載。
  • 將這些解碼值發送到您的服務器。
  • 在服務器上簽署一個新的訪問令牌,將這些值用作訪問令牌中的有效負載。
  • 將新簽名的訪問令牌發送回前端以供使用。

如果 URL 令牌是您在自己的服務器上創建的。 你甚至不需要 jwt_decode。 只需使用您用於驗證令牌的 JWT 模塊隨附的方法即可。 在回調中,您將獲得附加到該特定令牌的有效負載,使用有效負載創建新的訪問令牌並將其發送到前端。

暫無
暫無

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

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