2017-12-07 21 views
0

セキュリティのためにGoogle OAuth2を使用するウェブアプリがあります。郵便配達員を介してテストする必要があるAPIエンドポイントはたくさんありますが、ユーザーはGoogleを使用して認証する必要があります。postman:Google OAuth2を使用する私のwebappの認証方法

ユーザーが認証されていない場合、ウェブアプリケーションはGoogleログインページにリダイレクトされ、認証後に結果を送信します(例:localhost:8080/user)。それ以外の場合は、ユーザーがすでに認証されている場合は、結果を返信するだけです。 localhost:8080/loginを使用して明示的にユーザーにログインすることもできます(ログインボタンはホームページ上で行います)。これはブラウザでうまく動作しますが、郵便配達員では機能しません。

私は郵便配達で同じことをどうやって行うのですか? APIにアクセスしようとするとGoogleログインページが返されますが、資格情報(ユーザー名、パスワード、OTP)を提供する方法はありません。 localhost:8080/loginエンドポイントを使用してログインできる方法はありますか?

+0

私はこれを行うことができました。https://infinitecoder.github.io/2017-12-22-how-to-authorize-using-oauth-2-0-in-postman/ –

答えて

0

OAuth2が認証オプションとして選択されているときに表示される「新しいアクセストークンを取得する」オプションを使用できます。

このオプションを選択すると、アプリケーションの場合と同じ詳細を追加します。リクエストトークンをクリックすると、ウィンドウのような簡単なブラウザが表示され、OAuthプロバイダのログインページが表示されます。ログイン時に

、ポストマンはその後、さらに要求に使用することができ、トークンを保存します。

私はblog postを少し詳細に作成しました。

0

"プレリクエストスクリプト"機能を使用して、必要なものを達成できるかもしれないと思います。

と仮定すると、POST /ログインがアクセス可能であり、そしてあなたは、あなたが各要求の前に認証を行う「事前要求スクリプト」機能を使用することができます認証されたセッションのセッションデータを保存することができます。 (これはコレクションレベル、または要求レベルで行うことができます。)

をここに私は認証を必要とする私が使用するエンドポイントの一部に何をすべきかの例です...

const loginRequest = { 
 
    url: "http://localhost:1337/login", 
 
    method: "POST", 
 
    body: { 
 
     mode: "raw", 
 
     raw: JSON.stringify({ 
 
      email: '[email protected]', 
 
      password: 'so much security goin on here.' 
 
     }) 
 
    } 
 
}; 
 

 
pm.sendRequest(loginRequest, function (err, response) { 
 
    const responseJSON = response.json(); 
 
    pm.environment.set('jwt_token', responseJSON.token); 
 
    console.log(err ? err : pm.environment.get('jwt_token')); 
 
});

これは保護されたエンドポイントの事前認証を処理する最良の方法ではありません。 1つのリクエストをする代わりに、毎回2つのリクエストを作成しています。私が通常行っていることは、POST/loginのヒットです。その結果から必要なものをコレクション/環境変数/グローバル変数に格納し、それらの変数を他のリクエストで使用します。私は(私があなたがやろうとしていると同様の)実行する必要のある第三者の認証を持っている状況や、必要なAPIを作成/デバッグしている状況で、「2要求」メソッドをハックとして使用します各要求に対する認証。

私がここにいる場合は、コメントに私に教えてください、私は私の応答を更新します。

+0

「私はいつもしています...私は必要なものを保存し、POST /ログインをヒット、そして私の他のリクエストでこれらの変数を使用する」 Googleアカウントでそうすることが可能ですか?私はfirefoxを通してログインして、何とかトークンを郵便配達員に使うことができるのだろうか?あなたのアプリケーション(サーバサイドのロジック)することができますので、「はい、この人が認証されている」と言うためにGoogleから何かを必要とする - あなたがログインするとき –

+0

あなたはそれを試みることができる...、そこグーグルから戻ってくる何かをしなければならこれを使って。あなたのアプリがGoogleから必要としているものは何でも、我々が保存してアクセスしようとしているものです。 –

関連する問題