jwt和weebly oAuth
我正在跟随weebly上的文档来配置oauth 但是,将:jwt添加到manage_app_url并不起作用。 令牌永远不会被jwt替换,它只会像往常一样附加到末尾——将令牌也作为url的一部分 例如,在manifest.json中执行此操作 “管理应用程序url”:“” 返回: 令牌永远不会被替换 有人知道为什么照医生说的做是行不通的吗? 我做错了什么?我引用了但在这里回答,因为问题不太一样 清单中不需要:jwt。在您为manage_app_url设置的网站页面上,您将收听jwt,因为正如您所指出的,它会被附加到页面上 *如果希望它们在安装后出现在您的站点上,还可以使用“oauth_final_destination”:“manage”jwt和weebly oAuth,jwt,weebly,Jwt,Weebly,我正在跟随weebly上的文档来配置oauth 但是,将:jwt添加到manage_app_url并不起作用。 令牌永远不会被jwt替换,它只会像往常一样附加到末尾——将令牌也作为url的一部分 例如,在manifest.json中执行此操作 “管理应用程序url”:“” 返回: 令牌永远不会被替换 有人知道为什么照医生说的做是行不通的吗? 我做错了什么?我引用了但在这里回答,因为问题不太一样 清单中不需要:jwt。在您为manage_app_url设置的网站页面上,您将收听jwt,因为正如您所
{
"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并报告此问题