問題タブ [feathers-authentication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oauth-2.0 - @feathersjs/authentication-oauth2 が JWT とユーザーを作成していない
Facebook がユーザー プロファイルへのアクセスを許可した後、feathers-authentication-oauth2 プラグインがユーザーを DB に作成せず、認証に必要な JWT トークンも作成しないため、OAuth2 Facebook 戦略を使用して FeathersJS サーバーに認証できません。クライアントアプリで feathersclient.authenticate() を呼び出すとき。
その方法を説明している見つけたすべてのドキュメントに従おうとしましたが、良い例として、これを選択できます ( https://blog.feathersjs.com/how-to-setup-oauth-flow- with-featherjs-522bdecb10a8 ) は非常によく説明されています。
出発点として、ドキュメント ( https://docs.feathersjs.com/guides/chat/readme.html )で説明されている Feathers チャット アプリケーションを適切に動作させた後、説明どおりに OAuth2 部分を追加しました。中文書で。default.json ファイルに、「facebook」認証戦略を追加しました。
authentication.js ファイルに、Facebook OAuth2 認証の構成を追加しました。
最後に、src/app.js ファイルに、OAuth2 Facebook プロセスを開始できるように、window.location を「/auth/facebook」に変更する新しい「Facebook ログイン」ボタンを追加しました。
「Facebook ログイン」を押した後、feathersclient.authenticate() 呼び出しが失敗しないように、ユーザーが NeDB DB に作成され、有効な JWT が保存されることを期待します。しかし、その代わりにFacebookのログインページがきちんと呼び出され、その後ブラウザがメインページ('/')に戻されるのですが、その後、メインページがリロードされてfeathersclient.authenticate()が呼び出されると、サーバーは、有効な JWT トークンがないと文句を言うので、認証は失敗します。また、NeDB DB で作成されたユーザーが表示されないため、feathers-authentication-oauth2 プラグインによって実行されるはずのユーザーと JWT の作成が行われません...
feathersjs - オプションの認証サービス
TL;DR問題は、からユーザー情報を取得する方法ですjwt
user
リクエストで送信された場合の情報を取得しようとしていjwt
ますが、ログインしているユーザーだけにエンドポイントを閉じたくありません。
フックでエンドポイントを閉じたくありませんが、authenticate
フックなしで情報を取得する方法がわかりませんuser
。
でローカル戦略を使用していjwt
ます。