使用具有离子和快速的卫星

时间:2015-10-15 20:12:25

标签: node.js ionic

我有一个使用卫星进行FB登录的MEAN堆栈应用程序。

$authProvider.facebook({
        clientId: '1625070294abcdef',
        scope: 'user_friends'
      });

此处没有其他自定义设置。 一旦FB认证对话框关闭,FB的响应(即用户数据)就会被发送到我的快递服务器,以便我可以检索长期令牌。

我的FB开发人员门户网站上的网站网址设置为:

http://localhost:3000

这也是我的快递服务器正在收听的地址。

到目前为止一切都那么好......一切正常......

现在我也在创建一个离子应用程序..它将使用相同的快速后端。

为了执行FB登录,我再次使用带有离子的sateziller。

卫星在离子应用程序中配置如下:

var commonConfig = {
      popupOptions: {
        location: 'no',
        toolbar: 'no',
        width: window.screen.width,
        height: window.screen.height
      },
     commongConfig: {
       clientId: '1625070294abcdef',
      responseType: 'token',
      redirectUri: 'http://localhost:3000'
     }
    };

问题如下。 在离子应用程序中,将打开FB autentication窗口。用户验证..现在不是关闭窗口..同样的小窗口加载我的Angular网站(来自我前面提到的MEAN网站)

这告诉我从FB authen收到令牌后......它被发送到我的快递服务器。现在,而不是将长期令牌发送回我的离子应用程序..快递服务器正在发送整个Angular应用程序。

在快速服务器上检索长期令牌的代码如下所示:

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
  });

  });

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

  1. 一天结束时的离子应用程序是一个网站(就facebook而言)?

  2. 我应该可以使用相同的快速后端来验证我的网站和IONIC应用程序并为其提供REST服务吗?

  3. 由于网站(Angular APP)是从与快速服务器相同的服务器提供的..它不需要在satellizer配置中使用redirectUri参数..(默认情况下,这是expresss正在监听的URI)

  4. 由于离线应用程序不会由快速服务器提供服务。我们必须明确指定satellizer配置中的重定向URI。 重定向URI应该是express正在监听的地址和端口吗?

1 个答案:

答案 0 :(得分:0)

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

:Register set /p User=Enter A Username: %=% IF EXIST %User%.txt ( call :colorEcho c %User% call :colorEcho c " Already Exists." echo. call :colorEcho c "Please Choose A Different Username." echo. goto Register ) ELSE ( set /p Pass=Enter A Password: %=% set /p RePass=Re-Enter Password: %=% ) if %RePass%==%Pass% goto RegFinal if not %RePass%==%Pass%( call :colorEcho C "Passwords Do Not Match" echo. goto Register ) :RegFinal echo %Pass%>%User%.txt echo Welcome %User% pause exit

有了这个,您可以将:Login set /p User=Enter Your Username: %=% IF EXIST %User%.txt ( set /p Pass=Enter Your Password: %=% >nul findstr /c:%Pass% %User%.txt && ( echo Welcome %User% ) || ( echo Incorrect Username or Password goto Login ) ) ELSE ( call :colorEcho c %User% call :colorEcho c " Does Not Exists." echo. goto Choice ) 设置为:

trait Foo[T: ClassTag] Error:(11, 35) traits cannot have type parameters with context bounds `: ...' nor view bounds `<% ...' trait Foo[T: ClassTag] ^

然后在&#39; / user / twitter&#39;创建快速路线 - 当FB或Twitter等尝试重定向回查询者页面时,它会命中您的ionic.project代理并将其发送到Express / Sails / Server,您可以将该请求捕获为GET,处理它,创建一个用户等。显然,我的经验是使用Twitter,但它全部正常化,所以我认为这对你有用。

我希望这有帮助!