Javascript 在站点的移动版本中集成OAuth工作流

Javascript 在站点的移动版本中集成OAuth工作流,javascript,jquery,mobile,Javascript,Jquery,Mobile,我们为twitter和facebook等服务提供了以下工作流程: 用户点击“发布”按钮 我们在服务器上获取身份验证url 我们向客户端发送身份验证url 客户端在标准javascript弹出窗口中打开身份验证url 客户端通过回调url进行授权和返回 在回调url上,我们与社会服务进行交互 我们在手机的第四步上遇到了很大的麻烦 标准javascript弹出窗口在移动设备上不起作用。我们可以为外部验证URL使用哪些替代方案 UPD临时解决方案是生成身份验证链接作为锚,并将其放置在文档中。 它解决了

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

  • 用户点击“发布”按钮
  • 我们在服务器上获取身份验证url
  • 我们向客户端发送身份验证url
  • 客户端在标准javascript弹出窗口中打开身份验证url
  • 客户端通过回调url进行授权和返回
  • 在回调url上,我们与社会服务进行交互 我们在手机的第四步上遇到了很大的麻烦

    标准javascript弹出窗口在移动设备上不起作用。我们可以为外部验证URL使用哪些替代方案

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

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

    在回调函数中,您可以使用如下弹出窗口

    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();
    }
    
    函数显示信息(数据){
    $(“#somepopup”).html('
    “+数据+”
    ');
    $('#ok')。按钮();
    $('#取消')。按钮();
    $(“#somepopup”).popup();
    }
    

    您的文档中应该有一个id为somepopup的div,如果您实现jquery mobile,所有这些都可以正常工作。我希望这有帮助。

    这是MVC4吗?你能删除js并使用标准的浏览器帖子吗back@CR41G14不是MVC4。我可以使用回发,但这是最后一步-需要太多的更改。@NikolayFominyh通过标准javascript弹出窗口,你说的是警报框仪式吗?@SathyaRaj,没有。我的意思是
    widnow.open()
    。好主意,但是twitter通过authURL返回HTML。根据下面的答案@NikolayFominyh,它不能在jsonp中使用。我认为twitter提供了我使用api的所有东西,实现这些api将是什么样子,但是实现也将完全取决于项目。在这些链接中,没有任何关于从移动设备获取令牌的内容。我的意思是,有一些通用的规则,这些规则会导致解决方案,它们没有好的用户体验。然而,似乎没有解决这个问题的好办法。
    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();
    }