如果应用程序处于独立状态,则Facebook登录无法在PWA应用程序中运行

SAN*_*S G 18 facebook-login angularjs progressive-web-apps

我正在建立一个PWA网站.我正在使用Angular JS,我在我的网站上使用javascript facebook登录.但如果我在浏览器中查看我的应用程序,Facebook登录正在运行.但是当我向主屏幕添加快捷方式并从主屏幕启动应用程序时,FB登录无效.正在加载Facebook页面.但输入凭据后,它显示空白页面.有人可以帮忙吗?

这是我的FB登录代码

var doBrowserLogin = function(){
  var deferred = $q.defer();
  FB.login(
    function(response){
      if (response.authResponse) {
              deferred.resolve(response);
            }else{
              deferred.reject(response);
            }
          },
          {scope:'email,public_profile'}
       );
  return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)

它正在打开Facebook登录屏幕,输入凭据后,它显示为空白.没有回到应用程序. 空白页 在我的manifest.json文件中,display属性设置为standalone.请帮忙.

kkl*_*zak 2

这是正确的行为,因为 Facebook API 用于登录用户使用登录表单打开新选项卡。Facebook 实施 OAuth2 解决方案,并使用其 API 激活 OAuth2 隐式流程来验证用户身份。要在同一窗口中登录,您必须使用授权代码,但对于客户端应用程序来说并不安全,因为您将需要用户无法使用的密码。

您可以使用 facebook 登录表单创建 iframe,而不是打开新选项卡,当用户登录时关闭它并重定向。