問題タブ [passport-local]
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.
javascript - Express4 とパスポート: 認証できません
私はjavascriptとnode.jsを学んでいます。ご存知のように、ノード アプリの最も重要な部分の 1 つはログイン モジュールであるため、パスポートとパスポート ローカルで遊んでみましたが、パスポートがどのように認証されるのか正確に理解できません。パスポート認証プロセスについての私の理解は、コードとともに以下のとおりです。
- /login ルートへの POST 要求は、非同期の Passport.authenticate 呼び出しを呼び出します。
- この Passport.authenticate は、引数として「戦略」を取ります
- この戦略が呼び出され、別の「完了」非同期呼び出しが返されます (私の場合) エラーとユーザー オブジェクトはありません
- 「完了」呼び出しの後、serializeUser が呼び出され、ページが /admin にリダイレクトされます。
- 後続のリクエストがある場合、または isAuthenticated フックを持つ URL が呼び出された場合、passport.initialize は req.passport.user オブジェクトが空かどうかをチェックします。
- 空の場合、認証プロセスが再び繰り返されます。
- そうでない場合、passport.sessionはreq.userオブジェクトを作成するpassport.deserializeUserを呼び出します
私の問題は次のとおりです。
「ログイン」戦略では、次の 3 つはログに記録されません。
console.log('パスポートを使用中!'); console.log(req.body.username); console.log(req.body.password);
これは、私の「ログイン」戦略が呼び出されないことを意味しますか?
- 同様に、serializeUser と deserializeUser の console.logs が呼び出されることはありません。では、これらの関数も呼び出されていませんか?
パスポート ライブラリの理解が正しければ、呼び出す関数がありませんか?
ありがとう
node.js - NodeJS + Passport + 複数のサーバーでのセッション
私のプロジェクトでは、メイン サーバーで入力したものと同じパスポート セッション (ログイン + パスワード) を使用する必要があります。セッションを使用して、別のサーバーに自動的に接続する必要があります (リンクをクリックしたとき)。
例:メインサーバーにログインすると、他のすべてのサーバーホスト名のリンクのリストがあります。リンクをクリックすると、自動的にログインする必要があります。
これらの解決策を見つけましたが、その仕組みがわかりません。メインサーバーが提供するパスポートセッションをキャッチして自動的に接続するには、他のサーバーに対して何をする必要がありますか?
node.js - Express または Sails.js を使用して、すべてのデバイスからユーザーをログアウトします。
認証フローには、sails.js、connect-redis、およびパスポートを使用しています。しかし、すべてのデバイスからユーザーをログアウトすることはできません。connect-redis と Passport でドキュメントを見つけようとしましたが、そのようなオプションはありません。どんな情報でも素晴らしいでしょう。
node.js - Node.js / Express: POST が GET に変換される (コード 302)
POST
簡単に言うと、リクエストがGET
Express 4に変換されるログイン ページがあります。
私のログインページのビジネス部分は次のとおりです。
ここに私が設定したルートがあります:
ストラテジーのres.render
forGET /login
とfindOne()
call にブレークポイントを設定しました。local-login
「送信」ボタンをクリックすると、物事をキャッチするブレークポイントがrouter.get()
コード内にあります。
デバッガーでreq.method
は、 GET
.
ブラウザー (Chrome) で、302 を返す POST を実行していると言われます。コード 200/login
の保留中もあります。これらの 2 つのコード (302、200) は、デバッガーが で停止したときのものです。ブラウザのキャッシュをクリアしても効果はありません。GET
/login
router.get()
POST
私の要求が受け入れられない理由を教えてもらえますか?
javascript - Passport.js のトークンを含む確認メール
Passport.js でローカル認証用のトークンを含む確認メールを作成するソリューションを探しているだけです。確認を容易にするノード用のプラグインまたはコンポーネントはありますか? それとも自分でやらなければなりませんか?
私のコントローラー
ご意見ありがとうございます!
node.js - Passport js の複数戦略認証で不正なリクエストが発生する
認証されたユーザーがアクセスできるようにするいくつかの API エンドポイントを設計しています。このタスクにはパスポートを選択し、ベアラーとローカルの 2 つの認証戦略も選択しました。その背後にある理由は、モバイル アプリケーションが access_token を提供する一方で、管理者ユーザーはユーザー名とパスワードを使用するためです。
私が直面している問題は、ルートに 2 つの認証戦略を追加すると、Bad Request エラー 400 が発生することです。
これを複数の認証プロバイダーを使用した例のpassport.jsとして使用しましたか?
以下はサンプルコードです。
以下は、私が使用しているモジュールのバージョンです
このような問題の原因とその修正方法。
よろしく。