プラグイン > 開発について > EC-CUBE API で認証が必要な情報にアクセスで、ログイン画面が表示するのはなぜ? |
開発について
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nanasess |
投稿日時: 2017/11/28 11:47
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: EC-CUBE API で認証が必要な情報にアクセスで、ログイン画面が表示するのはなぜ? Order の情報は、未ログイン状態で閲覧できてはならない情報ですので、必ずログイン認証が必要です。
ブラウザでログイン画面を経由せずに認証する方法(Basic 認証や JWT Bearer 認証)は未実装です。 https://github.com/EC-CUBE/eccube-api/issues/29 今のところ、初回は必ずブラウザでログイン画面を経由して認証していただく必要があります。 ちなみに、 redirect_uri に urn:ietf:wg:oauth:2.0:oob を指定しておくとブラウザの画面に Authorization code が表示されますので、コマンドラインなどでも実装しやすいと思います。 http://doc.ec-cube.net/api_authorization#redirect_uri-の指定 Authorization code さえ取得できれば、以下のステップを踏むことで curl のみで order の情報を取得可能です。 1. http://doc.ec-cube.net/api_authorization#2-アクセストークンの取得 2. http://doc.ec-cube.net/api_authorization#4-apiアクセス APIアクセスする際には Authorization: Bearer <access token> ヘッダが必要です。 Swagger に表示される curl コードには含まれていませんので、上記 API アクセスの項を参考にしてください。 |
468 |
投稿日時: 2017/11/28 11:31
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: EC-CUBE API で認証が必要な情報にアクセスで、ログイン画面が表示するのはなぜ? ログイン画面が表示されるのは仕様のように思います。
Authorization codeの取得時には、 ログイン画面でログインした後、 表示される「このアプリ連携を許可しますか?」の画面で「許可する」をクリックするアクションを必ず行う必要があるように思われます。 また、Authorization codeは「許可する」をクリックした後のリダイレクトURLの中に含まれるようですので(レスポンスで返ってくるわけではない) 個人的な感想なのですが、 Curlコマンドだけで完結させるのは無理なのではないでしょうか? 対応するには、プラグインに手を加える必要があると思います。
|
tomoki |
投稿日時: 2017/11/27 16:57
対応状況: 開発中
|
新米 登録日: 2017/11/27 居住地: 投稿: 1 |
EC-CUBE API で認証が必要な情報にアクセスで、ログイン画面が表示するのはなぜ? ▼テンプレート
[EC-CUBE] EC-CUBE3.13、新規インストール [レンタルサーバ] 自社サーバー [OS] Windows 10 [PHP] PHP 7.1 [データベース] MySQL 5.7 [WEBサーバ] Apache2.4.6 [ブラウザ] Chrome [導入プラグインの有無] 無 [カスタマイズの有無] ルート変更 [現象] EC-CUBE APIを使用時に、認証が必要な情報にアクセスしたときにログイン画面が表示する。 はじめまして。 今月よりEC-CUBEの開発に入っております。 PHP言語はほぼ未経験、C# APS.NETを6年の経験があります。 Web API認証 ( Authorization ) ガイドのページ http://doc.ec-cube.net/api_authorization とswaggerを読みながら取り組んでいます。 [困っていること] EC-CUBE APIの開発で、認証が必要な情報を取得したいが、 「1. Authorization code の取得」時にログイン画面が出るのはなぜ? (ログイン画面が出るため、code を取得できない) [当方がやっていること] 1.swagger画面で[Authorize]ボタンを押し、取得したい情報を(ここではorder_read)を 選択し[Authorize]ボタンを押してアクセス権を付与する 2.swagger画面で「 /shopmanage/OAuth2/v0/authoriz」(POST・GET)の両方で 「実際に実行!」ボタンを押す。 ⇒レスポンスコードは「200」と表示 ⇒レスポンスボディはHTMLタグで表記しており、「このアプリ連携を許可しますか?」と記載しており 受注(参照)に対し、アクセス権を要求をするかアナウンスするようになっています ⇒レスポンスヘッダは以下に記載致します --ここから-- { "date": "Mon, 27 Nov 2017 07:58:23 GMT", "server": "Apache/2.4.6 (CentOS)", "vary": "Authorization", "cache-control": "no-cache", "access-control-allow-origin": "*", "access-control-allow-methods": "GET,POST,PUT,DELETE,OPTIONS", "access-control-allow-headers": "Origin, X-Requested-With, Content-Type, Accept, Authorization", "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "transfer-encoding": "chunked", "content-type": "text/html; charset=UTF-8" } --ここまで-- 3.2で表記している「Curl」のコマンドを実行するとログイン画面のHTMLが表示してしまう。 [当方が今回、望んでいること] 「当方がやっていること」の3番を実行時に、Authorization code の取得をしたいです。 [当方が達成したいこと] β版 であることは承知の上で、 EC-CUBE API プラグインを使い、Curlコマンドで、取得したい情報(order_read)を取得したい。 Web API認証 ( Authorization ) ガイドのページだと、Authorization code の取得する際、 URL にブラウザでアクセスする手法を記載しているが、PHPプログラムで実装するのが 想像できないので、POSTまたはGETを使い取得したいです。 どうぞよろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |