在移动版网站中集成OAuth工作流程

时间:2012-11-30 13:27:39

标签: javascript jquery mobile

我们为twitter和facebook等服务提供以下工作流程:

  1. 用户点击“发布”按钮。
  2. 我们在服务器上获取auth url
  3. 我们发送给客户端auth url
  4. 客户端在标准javascript弹出窗口
  5. 中打开auth url
  6. 客户端通过回调网址授权并返回
  7. 在回调网址上,我们与社交服务进行互动。
  8. 我们在手机上的第4步遇到了很大麻烦。

    标准的javascript弹出窗口无法在移动设备上运行。我们可以为外部授权网站使用哪些替代方案?

    UPD 临时解决方案是生成auth链接作为锚点并将它们放在文档中。 它解决了问题,但我们想要更好的用户体验。

1 个答案:

答案 0 :(得分:4)

我正在使用jquery mobile popup这个移动网站,它也看起来也是完美的桌面浏览器。我希望你使用像这样的回调(我使用这样的东西)

var jsonp = document.createElement("script");
        jsonp.type = "text/javascript";
        jsonp.src = "http://foo.com/api/ad?foo_var=4345&callback=displayinfo";
        document.getElementsByTagName("body")[0].appendChild(jsonp);

在回调函数中,您可以使用像

这样的弹出窗口
function displayinfo(data) {    
$("#somepopup").html('<div data-role="popup">
                        '+data+'
                    <div id="ok" data-inline=true data-role=button>
                        <a class="ui-link-inherit" href="">Ok</a>
                    </div>
                    <div id="cancel" data-inline=true data-role=button>
                        <a class="ui-link-inherit" href="">Cancel</a>
                    </div>
                    </div>');

                $('#ok').button();
                $('#cancel').button();

                $("#somepopup").popup();
}

你的文档中应该有一个id为somepopup的div,如果你实现jquery mobile,这一切都可以。我希望这会有所帮助。