2017-01-28 16 views
1

私はJWTとWeeblyのOAuthの

を-てOAuth設定するには、Weeblyのでドキュメントを以下しかし、追加してい:manage_app_urlにJWTが動作しません。 トークンはjwtに置き換えられることはありません。単にトークンを通常のように末尾に追加するだけで、トークンをURLの一部として残します。

すなわち、manifest.jsonを "manage_app_url" でこれを行う: "https://www.example.com/thepage.php?manage=yes&jwt=:jwt"、

戻り値: https://www.example.com/thepage.php?manage=yes&jwt=:jwt?thejwtstring トークンが交換されることはありません...何ドキュメントをやって、なぜ

誰もが知っています言うことはありません? 私は間違って何をしていますか?

答えて

0

ビル、そうです、weeblyの問題なので、修正できません。 :jwtは、ユーザーがApp Managerメニューからリンクを管理するためにクリックしたときに正常に置き換えられますが、OAuthプロセスから来たときは正常に置き換えられません。

私は数日前に同じ問題に直面し、単純に:jwtを削除し、URLの最後にweeblyを追加すると、私のために働きます。

私はそれがあなたのためにもうまくいけばいいと思います。dev- support @ weeblyでweeblyの開発サポートに連絡することをお勧めします。この問題を報告してください。

0

私はhttps://stackoverflow.com/a/40920748/3925032から引用していますが、質問は全く同じではないため、ここで回答しています。

必要ない:マニフェストのjwt。 manage_app_urlのために設定したあなたのウェブサイトのページでは、あなたが指摘したように、それがそれに追加されるので、あなたはjwtを聞きます。

*「oauth_final_destination」:「管理」を使用することもできます(インストール後にサイトを終了させる場合)。

{ 
    "manifest": "1", 
    "version": "1.1.1", 
    "client_id" : "123456789101112", 
    "callback_url" : "https://www.your-domain.com/callback.php", 
    "scopes": ["read:site", "write:site"], 
    "manage_app_url": "https://www.your-domain.com/manage.php", 
    "oauth_final_destination" : "manage", 
    "locale": { 
    "default": "en-us", 
    "supported": ["en-us"] 
}, 
"webhooks": { 
    "callback_url": "https://www.your-domain.com/webhooks.php", 
    "events": ["app.uninstall", "site.publish", "site.delete"] 
}, 
"snippet": "files/assets/snippet.tpl" 
} 


は、あなたのサイトのmanage_app_urlのページでは、どうなる:

require('firebase/src/JWT.php'); 
use \Firebase\JWT\JWT; 

if (isset($_GET['jwt'])) { 
    $app_client_id = "Your APP ID"; 
    $client_secret = "Your APP SECRET"; 
    $jtw = $_GET['jwt']; 

    /** 
    * You can add a leeway to account for when there is a clock skew times between 
    * the signing and verifying servers. It is recommended that this leeway should not be bigger than a few minutes. 
    * Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef 
    */ 

    try { 
     JWT::$leeway = 60; // $leeway in seconds 
     $decoded = JWT::decode($jtw, $client_secret, array('HS256')); 
     if (!empty($decoded)) { 
      $decoded_array = (array) $decoded; 
      // Continue with your websites code to verify the Weebly users info 
      // $decoded_array['user_id']; 
      // $decoded_array['site_id']; 
      // $decoded_array['iat']; 
      // $decoded_array['jti']; 
      // $decoded_array['callback_url']; 
     } 
    } //END TRY 
    catch (InvalidArgumentException $e) { 
     echo $e->getMessage(); 
    } 
    catch (UnexpectedValueException $e) { 
     echo $e->getMessage(); 
    } 
    catch (DomainException $e) { 
     echo $e->getMessage(); 
    } 
}// END IF ISSET JWT 
0

を残念ながら、あなたが実際に質問を理解していません。それは:jwtが必要なのではなく、それが文書化されているように動作しないように見えることです。

この問題の答えは ですが、ドラフトアプリとしてインストールすると機能しませんが、アプリのインターフェースから「管理アプリ」リンクにアクセスしても問題ありません。つまり、:jwtが適切なURLに置き換えられます。

したがって、問題はドラフトアプリのインストールであり、正面に向いているインターフェイスを介した実際のアプリケーション管理ではありません。

文書は最終結果には正しいが、ドラフトアプリとしてはインストールできません。これは、実際のドキュメントです....

注:Weeblyのは、自動的にすべての必要なオペランド(?様および&)を含むURLの末尾にJWT文字列を追加します。 JWTをURLの特定の部分に配置する場合は、jwtを使用し、WeeblyはJWTを置き換えます(オペランドを追加することなく、それらを含める必要があります)。

関連する問題