2016-04-25 35 views
2

我有兴趣使用loopback和护照(和AngularJS)来创建应用程序。寻找更多有关loopback +护照策略的信息

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

回答

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应用程序应该能够获取用户标识和访问令牌,可以通过Loopback正确识别,然后Loopback应用程序可以代表识别的用户向第三方提供商发送请求。

希望这会有帮助

+0

感谢您的支持。我一直在使用这个示例应用程序作为初学者,因为它有一个Facebook(OAuth),并显示客户端在用户未登录时通过呼叫失败 - 通过像你说的令牌。 –

+0

我忘了添加链接:https://github.com/vkarpov15/stopwatch-server-example –