2017-06-09 6 views
0

アンドロイドライブラリ 'io.jsonwebtoken:jjwt:0.7.0'を使用してトークンを作成しています。これは正しくチェックしたJWTを作成しています。私の問題は、私がphp firebase/php-jwtライブラリを使ってデコードするときです。両方のライブラリがHS256に設定され、キー "testing"が設定されています。私はここで間違って何をしていますか?PHP-JWTがデコードしない

String compactJws = Jwts.builder() 
      .claim("devId", getDeviceId()) 
      .signWith(SignatureAlgorithm.HS256, "testing") 
      .compact(); 
    logger.i(compactJws); 

ログeyJhbGciOiJIUzI1NiJ9.eyJkZXZJZCI6Ijc4MGQ1YWRlMzMwNGVhZmEifQ.XIKxG1xZbuMD8FRIAJ735LNbhodAj1a7pMZ6o3IF0igとして

https://jwt.io/

enter image description here

use \Firebase\JWT\JWT; 
$jwt = "eyJhbGciOiJIUzI1NiJ9.eyJkZXZJZCI6Ijc4MGQ1YWRlMzMwNGVhZmEifQ.XIKxG1xZbuMD8FRIAJ735LNbhodAj1a7pMZ6o3IF0ig"; 
$key = "testing"; 
$decoded = JWT::decode($jwt, $key, array('HS256')); 
print_r($decoded); 

リターンメッセージでキャッチされない例外 'Firebase \ JWT \ SignatureInvalidException' '署名検証に失敗しました'

+0

秘密BASE64が画面で確認されて復号化するために持っだから –

+0

ショットなぜあなたは一つのJWTを見せて、あなたのコードに他のJWTを使ったのですか?その署名は無効と思われるので、あなたの実際の問題は何ですか? – zerkms

+0

不適切なスクリーンショットを使用しました。私は私のコードを更新します –

答えて

0

答えは私が「標準」に欠けていたました:「JWT」ヘッダおよび符号化された鍵

Map<String, Object> header = new HashMap<>(); 
    header.put("typ", Header.JWT_TYPE); 
    .setHeader(header) 

PHP SIDE

$decoded_array = (array) JWT::decode($jwt, base64_decode($key), array('HS256')); 
関連する問題