【问题标题】:Twitter OAuth via a popup通过弹出窗口进行 Twitter OAuth
【发布时间】:2010-12-25 02:41:46
【问题描述】:

我想知道如何通过弹出窗口进行 twitter OAuth,即在弹出窗口中加载 Oauth 页面并让回调关闭子窗口并重新加载父窗口。

编辑:好的 iframe 很糟糕,但是您将如何完成上述操作,我注意到 posterous.com 这样做了 - 我希望实现与 FB connect 相同的流程。

【问题讨论】:

    标签: javascript iframe twitter oauth


    【解决方案1】:

    今天为雅虎做同样的事情......

    1. 打开一个弹出窗口
    2. 将用户发送到 Twitter 进行身份验证
    3. Twitter 将用户发送回 mysite.com/authcompleted.php,查询字符串中包含身份验证参数。仍然在此处的弹出窗口中。
    4. 弹出窗口 (mysite.com/authcompleted.html) 读取查询字符串并通过 javascript 将数据发送到打开器窗口

      window.opener.setTwitterAuthData(yourData)

    5. 在主窗口中的 setTwitterAuthData 中,设置适当的表单字段并将数据提交到您的服务器。

    【讨论】:

    • 当回调是 mysite.com/authcompleted.php 时,你怎么还能在弹出窗口中,第 3 点?
    • @mark 你首先将弹出窗口指向 yahoo,然后 yahoo 重定向,仍在弹出窗口内,到 authcompleted.php
    • 如何检测重定向何时发生并有响应?
    • 是的,我使用相同的流程,但是移动设备呢?它的流程正确吗?
    • 如果您输入错误的密码并发生重定向,现在可以正常工作。 window.opener 未定义
    【解决方案2】:

    你不应该这样做。将其加载到 IFrame 中会对用户隐藏 URL,使他们难以确认自己是在 twitter.com 而非第三方(即网络钓鱼)网站上输入密码。

    【讨论】:

    • 我原则上同意,但是授权页面不是只有允许||拒绝此应用程序按钮 - 它不会要求您输入密码。所以我不明白为什么从安全角度来看它应该是一个问题,同时帮助用户体验流程。
    • 如果您没有登录,它会要求您输入密码。
    • 在未登录的页面上有 iframe 破坏 JS,它要求您输入密码(第 37 行)
    • Twitter 的 OAuth 页面现在使用 X-Frame-Options 标头来防止将其加载到 iframe 中:)
    【解决方案3】:

    【讨论】:

    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2014-04-24
    • 1970-01-01
    • 2011-03-17
    • 2011-08-04
    • 2011-09-30
    相关资源
    最近更新 更多