リクエスト ヘッダーから 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#でデコードする方法を教えてください。