【问题标题】:How to find access_token expired or not in Onedrive?如何在 Onedrive 中查找 access_token 是否过期?
【发布时间】:2015-04-24 02:30:29
【问题描述】:

在 Onedrive 中,我可以使用他们的 Live SDK API 并获取 Access_token,并且我的用户的文件选择器也可以正常工作。

但是,每次用户尝试附加文件时,我都会调用 API 来获取 Access_token。

这是一个问题吗,当更多数量的用户每次尝试附加文件时都尝试调用此 API(Microsoft 是否对 API 调用次数有限制)。

另外,如果我尝试使用 WL.offline_access 范围将 Refresh_token 用于 Access_token,我的应用如何知道 Access_token 已过期?

【问题讨论】:

    标签: api access-token onedrive


    【解决方案1】:

    您需要在代码中添加逻辑以查看用户是否已经有会话发生。您可以通过添加 WL.Event.subscribe 并检查“auth.statusChange”来做到这一点。如果用户状态在任何时候发生了变化,它将调用该函数通过调用 WL.getLoginStatus 来检查用户的当前状态(即连接、未连接和未知)。如果您想在那里使用任何值,WL.getLoginStatus 还将返回用户会话对象(access_token、expires_in 等)。

    您的代码将如下所示。

    < script type = "text/javascript" >
    
      WL.Event.subscribe("auth.statusChange", chkStatus);
    
    function chkStatus() {
    
        WL.getLoginStatus(
          function(response) {
            if (response.status == "connected") {
    
              document.getElementById("info").innerText = "You're signed in";
            } else {
              WL.login({
                "scope": "wl.skydrive_update"
              });
            }
        

    有关 WL.getLoginStatus 的更多信息,请访问 https://msdn.microsoft.com/EN-US/library/hh550842.aspx。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-04
      • 2018-09-22
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多