0

リクエスト ヘッダーから JWT トークンをデコードします。次のようになります。

eyJzdWIiOiIxIiwiZXZlbnRfaWQiOiI3ZTA3Y2JmNC0wYjYyLTQ1MzMtYmE5ZC1mZGFjNDkyNTNjZTUiLCJpYXQiOiIxNTkwODk4Mzg1IiwiZXhwIjoiMTU5MDkwMTk4NSIsImlzcyI6ImxvY2FsaG9zdDo0NDM4NyIsInRpbWV6b25lX29mZnNldCI6LTcsInVzciI6Im1pbmcuaGlldS4xMzEyIiwiYWxpYXMiOiJNaW5nIEhpZXUiLCJwaG9uZSI6IjA4NDQ1OTAyNTIiLCJlbWFpbCI6ImhpZXVhbWlAZ21haWwuY29tIn0

public static string Base64Decode(string base64EncodedData)
{
    var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);
    return Encoding.UTF8.GetString(base64EncodedBytes);
}

上記のトークンをデコード メソッドに渡すと、次のような例外がスローされます。

Base-64 char 配列または文字列の長さが無効です

dotnetfiddle 参照: https://dotnetfiddle.net/Z2TUz9

しかし、javascript で使用する場合 (atob 関数を使用する場合) は、正常に動作します。

誰かが理由を教えてくれませんか?次に、C#でデコードする方法を教えてください。

4

1 に答える 1