寻找loopback +护照策略的更多信息

时间:2016-04-25 18:53:32

标签: angularjs oauth passport.js loopbackjs

我对使用loopback和passport(和AngularJS)创建应用程序很感兴趣。

我看到this示例应用已经启动并运行,我可以通过谷歌登录。我不太了解的是这应该如何与AngularJS应用程序一起使用。使用示例应用程序,一切都在服务器上完成(auth)。一旦我登录,这与客户端(AngularJS)和环回服务器之间所需的访问令牌有什么关系?我可以看到使用谷歌访问令牌和其他身份信息创建的用户,但是如何“连接”客户端所需的访问令牌(AngularJS)?

1 个答案:

答案 0 :(得分:1)

我大部分也是从这开始的,但到目前为止我抓住了这个:

3rd party provider <--- OAuth token ---> Loopback app <--- LB Token ---> Client

用于与第三方提供商互动的OAuth令牌是通过护照提取的,到目前为止我从未需要与之互动。

基本上,一旦您使用OAuth登录,就必须生成LB令牌并将其提供给用户,以便进一步识别用户。

为此,我在serializeUser中实现了一些自定义代码。我的自定义用户模型名为Client

app.serializeUser = function(userDataToSerialize, done) {
    app.models.Client.create({
        email: userDataToSerialize.email,
        password: userDataToSerialize.password
  },
  function(err, user) {
    if (err) return done(err);

    app.models.Client.generateVerificationToken(user, function(err, token) {
      if(err) return done(err);

      done(null, {
        userId: user.id,
        accessToken: token
      });
    });
  };

我创建了一个新客户端,然后为该用户生成一个令牌。使用令牌和用户ID调用done(null,..)将允许护照将此数据放入会话中,因此应该可以在客户端访问。

这样,Angular应用程序应该能够获取用户ID和访问令牌,由Loopback正确识别,然后Loopback应用程序可以代表已识别的用户向第三方提供商发出请求。

希望这有帮助