2016-06-17 9 views
-1

まずはエクスプレスとパスポートを使用します。私は、なぜ私は開発者のサイトで読んでいるjavascript "SDK"を含める必要はありませんその方法と一緒に行くのだろうかと思っていた。私は、パスポートがSDKについて議論しない理由を少し混乱させています。 SDKはクライアント側のため、Oauthと同じことをする別の方法があり、それはpassport-facebookが使用するものなので、私は推測します。私はそれについてもっと詳しく知りたいです。ウェブサイトにおけるFacebookの統合に関する懸念。アクセストークン

アクセストークンについても。パスポートで

私はこのような何かを:これはEAAYrf9ixTA0BAPkSlXymZA3y2QwkDIlAB84XXCjQH2qxEgZAaP8kdZBqWZApZAd5ZCqyD4te6YkZAYTpMPGujYq88fRZC2HcrcgfzLBiFyIMXrRUpssNxW470SJ7muNkiZCKEDoejiSZBgvtJkQen8rnr2nctEvfzfUm

=のように

function(accessToken, refreshToken, profile, done){

...

newUser.facebook.token = accessToken;

これは "acccesToken" を取得します

これはユーザーごとに異なるのですか?

Itには、上記の「アクセストークン」が4種類あります。あなたはどうやって知っていますか?

また、私はこれは私が私が行うときに取得されるものです私はそれがクッキーにaccessTokenを設定しますSDKガイドで読むが、私はそれ が表示されていないと思っconsole.log(req.session)

cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true }, 
    passport: { user: '5760703f8fd744e020920980' } } 

答えて

0
  1. なぜPassportJSでFacebook Javascript SDKが必要なのですか?

Facebookのクライアント側のSDKを使用すると、Facebookのから直接認証(FB.api('/me'))およびセッションデータ(FB.getLoginState)を取得し、クライアント側のクッキーにそれを設定することができます。 Passportを使用すると、passport.jsはルートとセッションデータに自動的にpassport.authenticateを呼び出したときに認証呼び出しを処理しますが、すべてサーバー側から、そしてコードが少なくて済みます。

また、Facebookはウェブログイン用に短期間のアクセストークンを提供しますが、サーバーリクエストに対して長期アクセストークンを提供します。

  1. ユーザーごとにアクセストークンが異なりますか?

ユニークですか?はい。私はそれが明示的に述べたことを見ていないが、Facebookはそれを言っています:

アクセストークンについて理解する重要な側面の1つは、それらが移植性があるということです。アクセストークンを取得したら、モバイルクライアント、Webブラウザ、またはサーバーからFacebookのサーバーに電話をかけることができます。クライアント上でトークンが取得された場合は、そのトークンをサーバーに送ってサーバー間コールで使用することができます。サーバーコール経由でトークンを取得した場合は、そのトークンをクライアントに送信してから、クライアントからの呼び出しを行うこともできます。私はあなたが実際に尋ねるかもしれないと思う何

あり、それは永続的あり、そしてthe answer is no。彼らは失効し、再生されます。

短命トークンの有効期間は通常1〜2時間ですが、長期トークンの有効期間は通常60日です。あなたはこれらの寿命に依存してはならず、寿命は警告なしで変わるか早期に失効することがあります。

  1. どのような種類のアクセストークンで、どのように知っていますか?

User Access Tokenです。パスポートはユーザーログインとユーザー認証を処理し、ユーザープロファイル情報を返します。他の3つのトークンタイプに関連する情報は返しません。

ユーザートークンは、最も一般的に使用されるトークンの種類です。この種のアクセストークンは、アプリがAPIを呼び出して、特定の人のFacebookデータを読み込んだり変更したり書き込んだりするたびに必要となります。ユーザーのアクセストークンは、通常、ログインダイアログで取得され、アプリに取得を許可するユーザーが必要です。

  1. SDKには、accessTokenがCookieで設定されていると記載されています。

パスポートは、明示的にそのようなpassport.deserializeUserが呼び出されたときにユーザオブジェクトを見つけることができるようにpassport.session()は、passport.serializeUserを呼び出しuser._idとして、それは一般的にユーザーに一意の識別子を記憶し、セッションにaccessTokenを格納しません。 「What does passport.session() middleware do?」で詳しく読むことができます。

関連する問題