jwt和weebly oAuth

jwt和weebly oAuth,jwt,weebly,Jwt,Weebly,我正在跟随weebly上的文档来配置oauth 但是,将:jwt添加到manage_app_url并不起作用。 令牌永远不会被jwt替换,它只会像往常一样附加到末尾——将令牌也作为url的一部分 例如,在manifest.json中执行此操作 “管理应用程序url”:“” 返回: 令牌永远不会被替换 有人知道为什么照医生说的做是行不通的吗? 我做错了什么?我引用了但在这里回答,因为问题不太一样 清单中不需要:jwt。在您为manage_app_url设置的网站页面上,您将收听jwt,因为正如您所

我正在跟随weebly上的文档来配置oauth

但是,将:jwt添加到manage_app_url并不起作用。 令牌永远不会被jwt替换,它只会像往常一样附加到末尾——将令牌也作为url的一部分

例如,在manifest.json中执行此操作 “管理应用程序url”:“”

返回: 令牌永远不会被替换

有人知道为什么照医生说的做是行不通的吗? 我做错了什么?

我引用了但在这里回答,因为问题不太一样

清单中不需要:jwt。在您为manage_app_url设置的网站页面上,您将收听jwt,因为正如您所指出的,它会被附加到页面上

*如果希望它们在安装后出现在您的站点上,还可以使用“oauth_final_destination”:“manage”

{
  "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"
}

在网站的管理应用程序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
我引用了但是在这里回答,因为问题不太一样

清单中不需要:jwt。在您为manage_app_url设置的网站页面上,您将收听jwt,因为正如您所指出的,它会被附加到页面上

*如果希望它们在安装后出现在您的站点上,还可以使用“oauth_final_destination”:“manage”

{
  "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"
}

在网站的管理应用程序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

不幸的是,你没有真正理解这个问题。这不是一个是否需要:jwt的问题,而是它似乎不能像文档中所描述的那样工作

这个问题的答案是: 作为草稿应用程序安装时,它不起作用,但是,通过应用程序界面访问“管理应用程序”链接是正确的。即:jwt被替换为正确的url

因此,问题在于安装草稿应用程序,而不是通过面向前端的界面实际管理应用程序

该文档对于最终结果是正确的,但不适合作为草稿应用程序安装。这是实际的文档

注意:Weebly会自动将JWT字符串追加到URL的末尾,包括任何必要的操作数(如?和&)如果希望将JWT放在URL的特定部分,可以使用:JWT,Weebly将用JWT替换它(不添加任何操作数-需要包括这些操作数)


不幸的是,你没有真正理解这个问题。这不是一个是否需要:jwt的问题,而是它似乎不能像文档中所描述的那样工作

这个问题的答案是: 作为草稿应用程序安装时,它不起作用,但是,通过应用程序界面访问“管理应用程序”链接是正确的。即:jwt被替换为正确的url

因此,问题在于安装草稿应用程序,而不是通过面向前端的界面实际管理应用程序

该文档对于最终结果是正确的,但不适合作为草稿应用程序安装。这是实际的文档

注意:Weebly会自动将JWT字符串追加到URL的末尾,包括任何必要的操作数(如?和&)如果希望将JWT放在URL的特定部分,可以使用:JWT,Weebly将用JWT替换它(不添加任何操作数-需要包括这些操作数)


比尔,你说得对,这是weebly的问题,所以你无法解决当有人点击appmanager菜单中的Manage链接时,jwt replace很好,但当它来自OAuth进程时,jwt不会很好地进行替换

几天前我遇到了同样的问题,简单地删除:jwt并让weebly在URL的末尾附加它对我来说很有用


我希望它也能为您工作,否则我建议您联系dev的weebly开发支持-support@weebly.com并报告此问题。

比尔,你说得对,这是weebly的问题,所以你无法修复它:当有人点击appmanager菜单中的Manage链接时,jwt replace很好,但当它来自OAuth进程时,jwt不会很好地进行替换

几天前我遇到了同样的问题,简单地删除:jwt并让weebly在URL的末尾附加它对我来说很有用

我希望它也能为您工作,否则我建议您联系dev的weebly开发支持-support@weebly.com并报告此问题