passport-facebook
認証戦略を使用するNode.js
でWebアプリケーションを作成しようとしています。デフォルトでは、この例で提供されているメカニズムは、ユーザをFacebook API
にリダイレクトすることによって動作し、ユーザはそこにユーザ名とパスワードを入力してログインすることができます。 Facebookがユーザーを確認すると、アプリケーションのコールバックURLにトークンを戻します。パスポート - フェイスブック認証で余分なデータを渡す方法
これは私のアプリケーションでうまくいきます。私は問題なくFacebookを使ってログインできます。しかし、私はログインしようとすると、1つの余分なフィールドをサーバーに渡す必要があります。
基本的に私の計画はTextField
とLogin Button
を私のホームページに追加することです。ログインに成功した後、コールバック関数が実行されると、このコールバックからTextField
の値を取得します。それを行う方法はありますか?どんな助けも高く評価されます。
これは私のHTMLページ
<body>
<div class="container">
<div class="jumbotron text-center">
<p>Login or Register with:</p>
<a href="/auth/facebook" class="btn btn-primary"><span class="fa fa-facebook"></span> Facebook</a>
</div>
</div>
</body>
の体であり、これは私のnod.js
コードです:
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('/auth/facebook/callback', passport.authenticate('facebook', {
successRedirect : '/dashboard',
failureRedirect : '/'
}));
app.get('/dashboard', isLoggedIn, function(req, res){
res.render('dashboard.ejs', {
user : {
name : req.user.facebook.name,
profilePic : req.user.facebook.profilePic
}
});
});
は基本的に私はちょうど私のLogIn
ボタンの前に余分なTextField
を追加したいです。そして/dashboard
ルートから、私はその値TextField
を取得したいと思います。だから、/dashboard
のための私のコードは次のようになります:
app.get('/dashboard', isLoggedIn, function(req, res){
res.render('dashboard.ejs', {
user : {
role: VALUE_FROM_TEXT_FIELD,
name : req.user.facebook.name,
profilePic : req.user.facebook.profilePic
}
});
});
をだから私は二重の質問があります: 1.フロントエンドからこのTextField
値を渡す方法。それはForm
または何の中にあるべきですか? 2. /dashboard
ルート内のTextField
の値を取得するにはどうすればよいですか?
あなたの仕事の例を挙げることはできますか?コールバックURLを使用してパスバックすることができるはずです。 – Pogrindis