私のアプリはフロントエンドにAngular2を使用しています.Expressを実行する別の(クロスドメイン)バックエンドサーバーとGoogle Oauth認証にpassport.jsを使用しています。クライアント側でPassport.jsのユーザー情報を読むにはどうすればよいですか?
Passport(google oauth経由)を使用してユーザーがサーバーから認証されると、ユーザーデータはデータベースから読み込まれ、資格情報に含まれます。これらのユーザーデータは、使用が承認されたバックエンドAPIルートを判断するために使用されます。 (これはscotch.ioのチュートリアルで、誰もが見ていると確信しています)
フロントエンドでこのユーザーオブジェクトにアクセスして、ユーザーのアクセスに依存するルートガードを有効にしますレベル(サーバー上のユーザーオブジェクトで定義されています)。
この質問から、正常である、データがJWTを経由して送信され、ちょうど、変更フロントエンドに読み取れないようです:https://www.reddit.com/r/Angular2/comments/4ud0ac/ng2_secure_connection_front_to_back/
私がアクセスし、クライアントにそのトークンを読むにはどうすればよいですか?私が見つけることができるのは、expressで設定された 'connect.sid'セッションクッキーだけです。 Cookieのペイロードは、標準のJWTには適合しません。
私は今それを得ると思います。 Expressは、クッキーとしてクライアント上で一意のID(セッション)を設定しています。クライアントが要求と共に資格情報を送信すると、そのクッキーの文字列が送信され、そのユーザーの詳細が、私がそれらと作業できるサーバー上のreqオブジェクトに追加されます。ユーザーの詳細は、サーバーからクライアントに実際に転送されることはありません。 私はそれが元々どのように働いていたか完全に誤解しました。私はJWTでPassport.jsを実装する方法を調べる必要があります。 ありがとう、ちょうど私が必要なもの! – ShannonB