Facebook喜欢自定义oAuth的弹出窗口

时间:2013-10-23 10:46:11

标签: javascript sencha-touch-2

我想显示一个像facebook登录的弹出窗口,并且在成功登录时我想关闭该弹出窗口并重定向到原始窗口。

我正在使用我的自定义oAuth,但我想像Facebook登录一样使用它

我正在使用sencha touch,当我使用window.open打开窗口时,会打开一个新的全屏窗口,并且在成功登录时,重定向页面仅在新的弹出窗口中打开。

enter image description here

1 个答案:

答案 0 :(得分:0)

为什么不使用带有iframe的浮动容器

Ext.define('MyApp.view.oAuthContainer', {
    extend: 'Ext.Container',

    config: {
        centered: true,
        height: 300,
        width: 400,
        hideOnMaskTap: false,
        modal: true,
        html: '<iframe src="https://myOAuthLoginService onLoad="MyApp.app.getController("MyController").myMethodToHandleAniFrameRedirect(this);"></iframe>"',
        items: [{
            xtype: 'toolbar',
            docked: 'top',
            items: [{
                xtype: 'spacer'
            }, {
                xtype: 'button',
                handler: function(button, event) {
                    button.up("container").hide({type: 'fade', out: true});
                },
                iconCls: 'delete'
            }]
        }]
    }
});

然后,您需要做的就是使用名为myMethodToHandleAniFrameRedirect(iframe)的方法创建一个名为MyController的控制器,以便在成功登录oauth后处理iframe重定向。您可以从方法中的iframe对象中获取URL,以确保身份验证成功。