Node.js 使用卫星与离子和快速

Node.js 使用卫星与离子和快速,node.js,ionic,Node.js,Ionic,我有一个平均堆栈应用程序,它使用satellizer进行FB登录 $authProvider.facebook({ clientId: '1625070294abcdef', scope: 'user_friends' }); 这里没有其他自定义设置。 一旦FB身份验证对话框关闭,FB的响应(即用户数据)将发送到我的express服务器,以便我可以检索长期令牌 我的FB开发者门户网站URL的设置为: http://localhost:3000 这也

我有一个平均堆栈应用程序,它使用satellizer进行FB登录

$authProvider.facebook({
        clientId: '1625070294abcdef',
        scope: 'user_friends'
      });
这里没有其他自定义设置。 一旦FB身份验证对话框关闭,FB的响应(即用户数据)将发送到我的express服务器,以便我可以检索长期令牌

我的FB开发者门户网站URL的设置为:

http://localhost:3000
这也是我的express服务器正在侦听的地址

到目前为止还不错。。。所有作品

现在我也在创建一个ionic应用程序。。将使用相同的express后端

为了执行FB登录,我再次将sateziller与ionic一起使用

卫星在爱奥尼亚应用程序中的配置如下:

var commonConfig = {
      popupOptions: {
        location: 'no',
        toolbar: 'no',
        width: window.screen.width,
        height: window.screen.height
      },
     commongConfig: {
       clientId: '1625070294abcdef',
      responseType: 'token',
      redirectUri: 'http://localhost:3000'
     }
    };
问题如下。 在ionic应用程序中,FB自动验证窗口打开。用户验证..但现在不需要关闭窗口..相同的小窗口加载我的角度网站(来自我前面提到的平均网站)

这告诉我,从FB authen收到令牌后,它将被发送到我的express服务器。现在不再向我的ionic应用程序发送长期代币。。express服务器正在发送整个Angular应用程序

在express server上检索长期令牌的代码如下所示:

var accessTokenUrl = 'https://graph.facebook.com/oauth/access_token';

  var params = {
    'client_id': req.body.clientId,
    'redirect_uri': req.body.redirectUri,
    'client_secret': conf.FACEBOOK_SECRET,
    code: req.body.code
  };
  console.log(params);

  request.get({url: accessTokenUrl, qs: params}, function (err, response, token) {
    if (err) {
      callback(err);
    }
    var accessToken = qs.parse(token);
 ...
 ...
retreive user details from FB using this accessToken (code hidden for sake of clarity
..
..
  res.status(200).send({
    user: user.toJSON(),
    token: token
  });

  });
我相信我在这里犯了一些根本性的错误

  • 一天结束时,爱奥尼亚应用程序就是一个网站(就facebook而言)

  • 我应该能够使用相同的express后端对我的网站和IONIC应用程序进行身份验证并提供REST服务

  • 因为该网站(Angular应用程序)与express服务器来自同一服务器。。它不需要satellizer config.中的redirectUri参数(默认情况下,这是expresss正在侦听的URI)

  • 由于爱奥尼亚应用程序将不会由express server提供。我们必须在卫星配置中明确指定重定向URI。 重定向URI应该是express正在侦听的地址和端口


  • 有类似的问题,但您可能希望查看ionic.project文件:

    {“app_id”:“,”代理“:[{path:/api”,“proxyUrl:”http://localhost:3000“}]}

    这样,您就可以将
    $authProvider
    设置为:

    $authProvider.twitter({url:'/api/user/twitter'})

    然后你在“/user/twitter”创建一条快速路线——当FB或twitter或etc试图重定向回inquirer页面时,它会点击你的ionic.project代理并将其直接发送到Express/Sails/Server,你可以将该请求捕获为GET、处理、创建用户等。显然,我的经验是使用twitter,但这一切都正常化了,所以我认为这对你来说是可行的


    我希望这有帮助

    也有类似的问题,但您可能需要查看IONAL.project文件:

    {“app_id”:“,”代理“:[{path:/api”,“proxyUrl:”http://localhost:3000“}]}

    这样,您就可以将
    $authProvider
    设置为:

    $authProvider.twitter({url:'/api/user/twitter'})

    然后你在“/user/twitter”创建一条快速路线——当FB或twitter或etc试图重定向回inquirer页面时,它会点击你的ionic.project代理并将其直接发送到Express/Sails/Server,你可以将该请求捕获为GET、处理、创建用户等。显然,我的经验是使用twitter,但这一切都正常化了,所以我认为这对你来说是可行的

    我希望这有帮助