使用环回+通行证策略寻找更多信息

Looking for more info with the loopback + passport strategy

我有兴趣使用环回和通行证(和 AngularJS)创建应用程序。

我看到 this 我已经启动的示例应用程序和 运行,我可以通过 google 登录。我不太明白这应该如何与 AngularJS 应用程序一起使用。使用示例应用程序,一切都在服务器上完成 (auth)。登录后,这与客户端 (AngularJS) 和环回服务器之间所需的访问令牌有何关系?我可以看到使用来自 google 的访问令牌和其他身份信息创建的用户,但是 "connect" 如何使用客户端所需的访问令牌 (AngularJS)?

我也主要从它开始,但这是我目前掌握的:

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

用于与第三方提供商交互的 OAuth 令牌由 passport 提取,到目前为止我从来不需要与之交互。

基本上,一旦您使用 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,..) 将使 passport 将此数据放入会话中,因此应该可以在客户端访问。

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

希望对您有所帮助