私はほとんど同様にそれで始まるが、ここだ、私はこれまで把握何をされています
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アプリは識別されたユーザーの代わりに第三者プロバイダにリクエストを送信できます。
希望します。
ありがとうございます。私はfacebook(OAuth)を持っていて、ユーザーがログインしていないときにクライアントがコールに失敗したことを示すので、このサンプルアプリケーションをスターターとして使用しています。 –
リンクを忘れてしまった:https://github.com/vkarpov15/stopwatch-server-example –