为访问 ASANA 的应用程序开发注销功能

Developing Logout functionality for application accessing ASANA

我正在开发一个使用 PHP、MySQL 的工具,它可以访问用户的 ASANA 配置文件。使用 OAuth 2.0 和 ASANA API 对用户进行身份验证。

应用程序运行良好,唯一的问题是注销功能。我可以从我的应用程序注销,但我无法删除 ASANA 设置的 cookie。 (个人电脑没问题,但 public 电脑可能会出现问题。)

如何在 he/she 注销我的应用程序时从 ASANA 注销用户?我尝试了其他帖子并看到了 Google API 和 Facebook API 的一些解决方案,其中成员建议使用 API 的注销 links。

我找不到 ASANA 的任何此类内容。直接注销 link: https://app.asana.com/-/logout 工作正常,但我无法将其重定向到我的应用程序。 任何建议都会有很大的帮助。

当前注销功能的代码:

<?PHP
include_once '../dbAPI/dbconnect.php';
session_start();    
mysqli_close($conn);
session_destroy();
header("Location: https://app.asana.com/-/logout")
?>

谢谢;

我最近发现了 Bridge24,它是 Asana 的一个很好的扩展 https://bridge24.com/

如果您不在 Asana 中,则无法从 Asana 注销……我认为这很正常。该扩展程序没有注销过程。您只能从您自己的应用中注销。

当前没有使这个过程非常顺利的功能。这主要是因为在许多可能的情况下它究竟如何工作并不是一个简单的答案。

我鼓励您 read this post 了解 OAuth 以及它与这个确切问题的关系,以便更好地理解该方法。简而言之,当用户退出您的应用程序时,您可能不想让用户退出 Asana,但我会让您自己决定:)

您可以尝试在用户注销您的应用程序时显示一条警告消息,而不是将用户注销:

"Warning: Remember to log out of the Asana App"

如果您真的想要一个按钮将用户从 Asana 中注销并重定向回您自己的网站,请尝试实现这样的 iframe

    <html>
    <script>
        function logout() {
            var i = document.createElement('iframe');
            i.style.display = 'none';
            i.onload = function () {
                i.parentNode.removeChild(i);
            };
            i.src = 'https://app.asana.com/-/logout';
            document.body.appendChild(i);
        }
    </script>
    <a href="/logout" onclick="logout();">Logout</a>
    </html>