私はangle-cliを使ってAngular 4アプリを開発しました。私は、クライアントにアクセスするためにキーロックaccess_tokenを必要とするスプリングブートサーバーを持っています。私がエンドポイントを呼び出すと、Angularサービスクラスのトークン(現在はハードコードされています)にアタッチします。access_token from Angular2 app
これは問題なく動作しますが、今はハードコードされたトークンを取り除く必要があります。
私は、許可タイプ、クライアントID、クライアント秘密、およびapplication/x-www-form-urlencodedコンテンツタイプを取るkeycloak URLを持っています。私は郵便配達員からこのトークンを受け取りました。
私が探しているのは、バックエンドサービスへのHTTPコールを行うたびに、キークローックからその大きなトークンを取得して、認証ヘッダにトークンをプログラムで添付するための最良の方法です。
私keyclok-service.tsでこの
のようなもの
header = new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
});
options = new RequestOptions({headers: this.header});
createAccessToken() {
const keyclock = new Keyclock('the grant type', 'the client id ', 'the cleitn secret');
return this.http.post('https:/keyclockserverurl/auth/realms/env/protocol/openid-connect/token', keyclock, this.options);
は}
このコードは、2つのエラー 1いいえ 'アクセス制御、原点許可' ヘッダは、要求されたリソース上に存在する
- を与えます"invalid_request" gratn_typeが見つかりません
大歓迎です!
は '許可タイプである1 found'ないgrant_type見る角度-CLIプロジェクトにプロキシサーバーを作成する方法を理解するには? –
"tha grant type"の値がgrant-typeであることを確認しながら、keycloakコンストラクタの最初の引数secuirityの理由で値を変更しました。しかし、私は正しい価値を伝えています。 – Sourav
body = 'grant_type = yourGrantType&client_id = yourclientId&client_secret = yourclientSecrete'のようにボディを変更した後。私はネットワークの呼び出しをチェックしたときに応答のトークンを見ることができますが、クライアントはトークンを受け取っていないため、上記のCORSエラーを表示して、定義されていないconsole.log(応答) – Sourav