2017-06-17 8 views
0

私はOAuthを完全に新しくしており、ワークフローに関する質問をしています。私はノード/エクスプレス/パスポートを使用しており、私の/auth/googleエンドポイントを要求するときにリダイレクトするためのアプリを正常にセットアップしました。OAuth 2 - 権限を与えずにログインする方法

ただし、私は一貫して私の情報へのアプリケーションアクセスを提供する必要があるGoogle権限ページにルーティングされます。いつもそのアクセスを提供せずに私がログイン/ログアウトできるメカニズムは何ですか?基本的には、再度権限を要求せずにユーザーがログインできるようにするにはどうすればよいのですか?

+0

、 それは、グーグル、OAuthのではないのですが、OAuthのは –

+0

をどのように機能するか、あなたはそれについていくつかの基本を取得します@ myke_11jありがとう、私は間違いなくそれを読むでしょう! – Corbfon

答えて

0

あなたの行っているように、ユーザーがGoogleにログインするのが典型的な流れです。アプリケーションがリクエストした範囲を確認すると、Googleはサーバーにアクセスコード/更新コードが格納され、将来使用されるように交換できる認証コードをサーバーに提供します。

パスポートは、あなたから離れて多くの前後を抽象化する必要があります。 thisライブラリーを利用していますか?もしそうなら、あなた自身のローカルデータベースにアクセストークンとリフレッシュトークンを再利用するために保存していますか?(少なくともでリフレッシュトークンが必要なので、新しい有効なトークンを取得できますか?私はhttp://nodexperts.com/blog/salesforce-oauth-using-nodejs/、これを読んで推薦

+0

これは役に立つ道のようです。実際にアクセストークンやリフレッシュトークンを使って説明したチュートリアルはありません。あなたがリンクしているライブラリを使用しています。私の質問は、アクセストークンとリフレッシュトークンを保存する方法と、パスポートにそれらを提供する方法です。 – Corbfon

+0

トークンの使用方法に依存します。ユーザーがGoogleにログインできるようにするには、データベース内のユーザーへのリンクを持つセッションと、そのユーザーに関連付けられている更新/アクセストークンを保存する場所を検討する必要があります。この例では何らかの理由でトークンの格納が示されていませんが、ユーザに毎回ログインさせたくない場合は、どこかでトークンを実行する必要があります。安全に、好ましくは。次に、[this](https://developers.google.com/identity/protocols/OAuth2UserAgent#validate-access-token)のようなものを使用して、リンクされたトークンを検証する必要があります。 – dvlsg

+0

'passport'の文脈であなたのデータベースの内外でユーザーをマーシャリングする方法であるため、' deserializeUser'と 'serializeUser'メソッドを' passport'から見たいと思うでしょう。 [Docs here](http://passportjs.org/docs/configure)を参照してください。ただし、これらのメソッドを表示するには少し下にスクロールする必要があります。 – dvlsg

関連する問題