gpt4 book ai didi

facebook-c#-sdk - 使用 Javascript OAuth 2.0 SDK 更新签名请求

转载 作者:行者123 更新时间:2023-12-05 01:12:55 25 4
gpt4 key购买 nike

随着新的 Javascript SDK 和 OAuth 2.0 的发布,我想知道是否可以在不重定向用户的情况下更新 SignedRequest(和 authtoken),所以我使用了以下方法。基本上,这是我的应用程序绕过 token 2 小时到期窗口的一种保持事件状态的方法。

我的应用包括:

  1. Flash 前端 + Javascript
  2. 使用 Facebook C# SDK 的网络服务 (asmx)

要更新已签名的请求,我执行以下操作:

  1. 每 20 秒我使用 getTimeout() 调用 FB.getLoginStatus
  2. 这将返回一个新的 signedRequest
  3. 我更新了我的 ajaxSetup,以便在每次调用我的服务器时都包含这个参数。

    var signedRequest;
    function updateSignedRequest(_signedRequest) {
    signedRequest = _signedRequest;
    $.ajaxSetup({ data: { "signed_request": signedRequest} });
    }
    (function ensureAuth() {
    setTimeout(function () { checkAuth(); ensureAuth(); }, 20000);
    })();
    function checkAuth() {
    FB.getLoginStatus(handleResCallback, true);
    }
    function handleResCallback(res) {
    if (!res.authResponse) {
    handleNotConnected();
    } else {
    signedRequest = res.authResponse.signedRequest;
    }
    }

几个问题:

我相信 Facebook C# SDK 查看每个新请求的 signed_request 参数,而不是 cookie。会一直这样吗?

此外,您还可以在这种方法中看到任何其他漏洞吗?

最佳答案

对于用户而言,这可能不是最佳方法。如果他们因任何原因注销或身份验证失败,您将需要通过弹出窗口或重定向他们登录来处理它。这意味着他们将在随机时间中断他们正在做的事情 - 而不是等待让他们做一些需要身份验证的事情,然后提供登录等。您也可以订阅 auth 事件,而不是每 20 秒检查一次。您将能够将 handleNotConnected() 设置为他们解除应用程序验证或注销时的回调。或者,您可以读取 token 的到期时间,只有在到期时间过后才更新。

关于facebook-c#-sdk - 使用 Javascript OAuth 2.0 SDK 更新签名请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com