有谁知道为什么我们的 Weebly 应用清单中以下条目中的 :jwt 没有被替换?
“callback_url”:“ https://www.mymobileapp.online/home/index?vendorId=Weebly&:jwt ”
我看到的传入请求是:
因此,如您所见,':jwt' 仍然存在,并且 Weebly 在其后附加了它的查询字符串操作数和参数。
我已经阅读了下面页面上的“为 OAuth 配置清单”部分,据我所知,我正在正确配置清单。我错过了什么?
有谁知道为什么我们的 Weebly 应用清单中以下条目中的 :jwt 没有被替换?
“callback_url”:“ https://www.mymobileapp.online/home/index?vendorId=Weebly&:jwt ”
我看到的传入请求是:
因此,如您所见,':jwt' 仍然存在,并且 Weebly 在其后附加了它的查询字符串操作数和参数。
我已经阅读了下面页面上的“为 OAuth 配置清单”部分,据我所知,我正在正确配置清单。我错过了什么?
到现在为止,您可能已经想通了,但是您的 callback_url一开始就不应该有 :jwt .. 问题已解决;)
如果用户可以管理应用程序/设置,那么您将使用 manage_app_url。然后在您为 manage_app_url 设置的网站页面上,您将监听 jwt。(那么您也可以使用“oauth_final_destination”:“manage”,如果您希望它们在安装后最终出现在您的网站上)请参阅:https://dev.weebly.com/how-users-manage-your-app。 html
**编辑另见:https ://dev.weebly.com/sso-with-jwt.html **
因此,例如,使用 PHP,您可以在站点的 manage_app_url 页面上执行以下操作:
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
}
}
} // END IF ISSET JWT
尽管此响应是正确的,但我认为原始帖子已关闭,因为它使用 :jwt 的 manage_app_url
我有同样的问题,但发现它在作为草稿应用程序安装时不起作用,但是,通过应用程序界面访问“管理应用程序”链接,它是正确的。即,将 :jwt 替换为正确的 url。
所以问题在于安装草稿应用程序,而不是通过正面界面实际管理应用程序
杰弗瑞,先生,您说的完全正确。我只是将其添加为一个答案,以扩展您的一些其他安全建议,Weebly 认为最佳实践。
开发人员需要实现JWT
“JSON Web Token”的主要用例是(有关更多详细信息,请参阅上面 Jeffery 答案中的链接):
SSO
(单点登录)支持:jwt
包含在 URL 中的两种方式您的 Weebly 应用manifest.json
文件可能包含触发 Weebly 为您提供 JWT 的 URL:
manage_app_url
element.settings.config.external.url
dashboard_cards.link
||dashboard_cards.default[{{SOME_COMPONENT}}].link
开发人员可以使用以下两种方法之一定义 JWT 在这些 URL 中的位置:
:jwt
:通过在您在manifest.json
文件中提供的 URL 值内的任何有效位置使用来表示在开发过程中使用decode
上述 PHP 库的方法既方便又快捷,但是当开发人员准备将他们的 Weebly 应用程序发布到应用程序中心时,您将希望包括尽可能高的安全性。
https
headers.host
包含有效weebly
域和.com
TLD(因为包含 JWT 的请求只能来自https://www.weebly.com
虽然上述关于安全性的内容目前不是 Weebly 官方文档的一部分,但我已经提交了一个问题,以便将来包含它。
另外,我看到我们最近移动了内容,并且没有包含原始问题或 Jeffery 的答案中引用的 URL 的 301 重定向。我们刚刚修复了这个问题,以便您的链接正常工作。
我希望这会有所帮助,并且这些信息对您很有价值。