MeanJSスタックを使用してWebアプリケーションを開発しています。私が抱えている問題は、私の通常のサインアッププロセスに、Oauthユーザープロファイルに共通していないいくつかの固有のパラメーターがあることです。そのため、ユーザーにFacebookでサインアップしてもらうと、新しいサインアップフォームに移動し、追加のパラメーターを入力して、[Facebookでサインアップ]をクリックします。
ルートは、https://github.com/meanjs/mean/blob/master/app/routes/users.server.routes.jsにある一般的なMeanJSルートと同じです。
具体的にはこれらの行:
app.route('/auth/facebook').get(passport.authenticate('facebook', {
scope: ['email']
}));
app.route('/auth/facebook/callback').get(users.oauthCallback('facebook'));
私がやりたいのは、追加のパラメーターをリクエストオブジェクトにアタッチして、認証プロセスがexports.saveOAuthUserProfile
内部に到達したときにhttps://github.com/meanjs/mean/blob/master/app/controllers/usersになるようにすることです。 /users.authentication.server.controller.jsこの関数は、これらのパラメーターにアクセスして、ユーザーモデルの一部として保存することができます。
Getリクエストにパラメータを添付してアクセスしてみました
req.params.paramId
ただし、これは機能しません。これは、paramがロードされたリクエストをFacebook APIに登録できないためです(または、少なくともそのように思われます)。
また、StackOverflowの他の場所で、リクエストの状態を読み込むことができることを読みましたが、それは私には本当に奇妙に思えます。そのためのリンクは次のとおりです。FacebookOAuth:カスタムcallback_uriパラメーター
したがって、追加データをOauthリクエストにロードして、ユーザープロファイルを保存するときにアクセスして保存できるようにする方法についてのガイダンスは、すばらしいでしょう。
みんなありがとう。
あなたが何を達成したいのか、私にはよくわかりません。「追加」フィールドとは何ですか。ユーザーのプロファイルから直接フィールドを取得してみませんか。私が見たFBログイン実装の約98%は、[Facebookでログイン]ボタンを使用して、OAuthプロセス自体の間にユーザーのデータを取得し、ユーザーが手動で入力することはありません。
パスポートのFacebook例えば、それはあなたのことが可能です
a)カスタムスコープを構成する
b)カスタムスコープのデータでプロファイルオブジェクトを強化します
profile
オブジェクトが自動的に追加要求されたフィールドが含まれます、そして、あなたはリクエストオブジェクトそのものを微調整する必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加