2016-12-27 5 views
0

JWTオブジェクトを使用してResttサービスでOpenTokセッションを作成しようとしています。私はFiddlerとセッションを生成しようとしました。 //api.opentok.com/session/create HTTP/1.1OpenTok Rest Service Fiddlerリクエストで無効なJWTエラー

ホスト:ここ

は私のシオマネキ要求(JWT文字列は、セキュリティ上の理由から、部分的に***に変更されています)

POST HTTPSであります:api.opentok.com

X-OPENTOK-AUTH:json_web_token

受け入れ:アプリケーション/ JSON

のContent-Lengthを:172

eyJ0eXAiOiJKV1QiL ****** ****** iOiJIUzI1NiJ9.eyJpc3MiOjQ1NzM OiJkZW5l ****** XQiOjE0ODI3OTIzO *** SOMESIGNEDKEYHERE ***。izvhwYcgwkGCyNjV ***** 2HRqiyBIYi9M

私は403を得ました{"code": - 1、 "message": "無効なトークン形式"}というエラーはおそらくJWTオブジェクトが正しくないことを意味します。私はhttp://jwt.io(opentokが示唆しているように)と他のサイトを使ってそれを作成しようとしましたが、すべてtokbox(opentok)サイトのものと似ています。

これを修正してセッションを作成するには、説明が必要です。

私はopentok trialを使用している可能性がありますか? JWT creation Parameters

答えて

0

私は最後の答えを発見したOK、

あなたOpentok APIの秘密鍵は、ログインパラメータとして直接使用するべきではありません。以下に示すようにjavaでは、最初にエンコードする必要があります。

私はそれを試していないBase64.encodeToString( "DB4は****** ******* b51a4032a83 5d19a ***** E01" .getBytes()、0)

http://jwt.ioとフィドラーしかし、それはあまりにもそれで動作するようだ。ありがとう。完全なコードは以下の通りです。

payload = Jwts.builder() 
      .setIssuedAt(currentTime) 
      .setIssuer("YOUR_OPENTOK_KEY") 
      .setExpiration(fiveMinutesAdded) 
      .claim("ist", "project") 
      .setHeaderParam("typ","JWT") 
      .signWith(SignatureAlgorithm.HS256, Base64.encodeToString("YOUR_OPENTOK_SECRET".getBytes(),0)) 
      .compact(); 
    return payload; 
0

私は同じ問題がありました。ペイロード部分に正しいキーと値のペアを設定してエラーを解決しました。次のように私のペイロードの

例は、C#である:

var payload = new Dictionary<string, object>() 
{ 
    { "iss", "45728332" }, 
    { "ist", "project" }, 
    { "iat", ToUnixTime(issued) }, 
    { "exp", ToUnixTime(expire) } 
}; 

「イスト」の値は、プロジェクトのない実際の名前、「プロジェクト」に設定する必要があります。

更新:スクリーンショットを見ると、右下に秘密鍵(ここでは、TokBoxアカウントのプロジェクトのApiKeySecretです)を設定していないと言えます。

+0

"project"は "myprojectname"ではありませんか?本当に?私はそれを試してみよう。私はあなたに結果を知らせます。 –

+0

'ist'のちょっとした背景:TokBoxは、異なるコンテキストでユーザーレベルとアカウントレベルで他の主張を使用します。このフィールドは、異なる発行者請求タイプを明確にするために必要です。 – wobbals

+0

@TuğrulKarakayaだから、どうしたの?問題を解決しましたか? –

関連する問題