私は、フロントエンドクライアントとしてAngular Appを、そしてRailsバックエンドAPIを持っています。私はAsanaのAPIにアクセスしたいと思っており、Angular Appを介して認証したいので、Implicit Grant Flow
というOAuthプロセスに従っています。バックエンドでAsanaのaccess_tokenを使用できますか?
access_token
を取得しましたが、Postmanでこのコードを使用しようとすると(私がバックエンドで実装するAPI呼び出しをテストするために)、私は認証されたコードではなく401を取得します。
ユーザーがAngular経由で承認し、このアクセストークンを永続的なトークン/コードと交換してバックエンドで後続の呼び出しを行う方法はありますか?
もしそうでなければ、私はAPIにアクセスする必要があるたびにこれを承認する必要がありますか?私は許可した後私が試したポストマン分で上記の
注:ここでEDIT
はポストマンでaccess_token
を使用する私の試みのスクリーンショットですアプリは、トークンがまだ有効であると思います。
私には2つの問題があると思います:1)私は何か間違ってPostmanでエラーが発生しました。2)永久的なトークンを取得したいので、繰り返し使用することができます。私が正しく理解していれば、私がバックエンドで認証をしていない限り、私は 'Authorization Code Grant'を手に入れることができないので、' access_token'を永続的なものに交換する方法があることを望んでいましたか? – WagnerMatosUK
まず、あなたのPostmanリクエストの問題:Asanaはクエリパラメータではなくヘッダとして 'Authorization:Bearer somecode'をヘッダとして取ります。アクセストークンをクエリパラメータとして渡す場合は、 'https://app.asana.com/...?access_token = somecode'のように' access_token'パラメータに渡すことができます。私は2)別のコメントで議論するつもりです。 –
アクセストークンは、リフレッシュトークンよりも安全性の低い資格情報であるため、リフレッシュトークンのアクセストークンを交換する方法はありません。ユーザーがあなたのアプリを承認したら、暗黙的な付与エンドポイントへのその後のリダイレクトも追加して、ユーザーが再びクリックする必要はありません。これはクライアント上でauthを処理する正しい方法です。クライアントには不要なAsana APIクライアントシークレットを使用せずにリフレッシュトークンを使用することはできません。 サーバーで長寿命のトークンが必要な場合は、バックエンドで許可コード許可を使用する必要があります。 –