我主要用它开始很好,但这里是我抓住至今:
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应用程序可以代表识别的用户向第三方提供商发送请求。
希望这会有帮助
感谢您的支持。我一直在使用这个示例应用程序作为初学者,因为它有一个Facebook(OAuth),并显示客户端在用户未登录时通过呼叫失败 - 通过像你说的令牌。 –
我忘了添加链接:https://github.com/vkarpov15/stopwatch-server-example –