プラグイン > 開発について > EC-CUBE API アクセストークンが取得できない |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nkk |
投稿日時: 2018/3/23 11:02
対応状況: 解決済
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
EC-CUBE API アクセストークンが取得できない [EC-CUBE] 3.0.15、新規インストール
[レンタルサーバ] VPS [OS] Ubuntu16.04LTS [PHP] 7.0 [データベース] MySQL 5.7 [WEBサーバ] Apache2.4 [ブラウザ] Chrome [導入プラグインの有無] クローズサイト、ソニーペイメントサービス [カスタマイズの有無] 無し [現象] GoogleScriptでAPI認証手続きに基づき、管理者ログイン~code取得までできました。 取得したcodeからaccess_tokenを取得したいのですが、401エラーが発生しhtmlテキスト(ユーザーログイン画面)が返ってきます。 実行しているコードは下記の通りです。 var options = { grant_type: "authorization_code", code: code, client_id: client_id, client_secret: client_secret, state: state, nonce: nonce, redirect_uri: redirect_uri }; var prams = { method : 'post', payload : options, muteHttpExceptions : true, }; var response = UrlFetchApp.fetch(url, params); 認証ガイドの2. アクセストークンの取得では特にユーザーログイン画面が表示されるような記述はなく、参考にしたスレッドではcode取得後はCURLで可能とありますので、腑に落ちません。 同じような状況でお悩みの方はいらっしゃらないでしょうか。。。 それともUrlFetchApp.fetch()ではできないものでしょうか -- 追記 curlでも同様でした。 |
nanasess |
投稿日時: 2018/3/23 15:10
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: EC-CUBE API アクセストークンが取得できない 以下の authorization code の有効期限が切れていたりしませんでしょうか?
http://doc.ec-cube.net/api_authorization#1-authorization-code-の取得 |
nkk |
投稿日時: 2018/3/23 15:21
対応状況: −−−
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
Re: EC-CUBE API アクセストークンが取得できない 返信ありがとうございます。
確かに現状は動作確認のためcode取得からtoken発行まで少々時間がかかっております。 それでも5秒はたっていないと思いますが。。。 codeが有効な時間はmsecオーダーなんでしょうか。 未記載の情報として ・ホストはhttpsでアクセス ・3.0.15のためhtml/.htaccessの401対策は適用済み |
nanasess |
投稿日時: 2018/3/23 15:33
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: EC-CUBE API アクセストークンが取得できない あー、認可する scope が渡ってない感じですかね??
|
nkk |
投稿日時: 2018/3/23 16:15
対応状況: −−−
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
Re: EC-CUBE API アクセストークンが取得できない 引用:
確認させてください。 1. https://<eccube-host>/admin/OAuth2/v0/authorize?~ を叩く 2. ログインする 3. scopeを確認し 認証する 4. redirect_uriにcodeが返ってくる という手順を踏んでいますがscopeは渡っていないのでしょうか? |
nanasess |
投稿日時: 2018/3/23 17:49
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: EC-CUBE API アクセストークンが取得できない ごめんなさい。見当違いなところを見ていました。
token エンドポイントの URL は、どのような URL を指定していますでしょうか? authorization エンドポイントと異なり、 /admin 無しの URL が正しいです。 https://<eccube-host>/OAuth2/v1/token ログイン画面が表示されてしまうということで、 管理画面の URL を指定していませんでしょうか? |
nkk |
投稿日時: 2018/3/23 21:52
対応状況: −−−
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
Re: EC-CUBE API アクセストークンが取得できない 元々は
https://<host>/admin/OAuth2/v0/authorize https://<host>/OAuth2/v0/token にアクセスしていましたが、返信を拝見してからconstant.ymlを編集しv1に切り替えてみました。 変更後はこちらですね。 https://<host>/admin/OAuth2/v1/authorize https://<host>/OAuth2/v1/token https://<host>/OAuth2/v1/tokenから帰ってくるのは変わらず401のままです。。。 swaggerも動作しないので、サイトそのものに問題があるのかな |
nanasess |
投稿日時: 2018/3/24 12:45
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: EC-CUBE API アクセストークンが取得できない 通常、管理画面のログイン画面が表示されるのは、 /admin 以下(インストール時に設定したディレクトリ)のみなので、 /OAuth/v1/token でログイン画面が表示されるのは、おかしい気がします。
https://<host>/index.php/OAuth2/v1/token に、してみるといかがでしょう?? |
nkk |
投稿日時: 2018/3/24 19:33
対応状況: −−−
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
Re: EC-CUBE API アクセストークンが取得できない 「https://<host>/index.php/OAuth2/v1/token」としてみましたが、状況は変わらないです。
ヘッダは下記の内容が返ってきますが、ヒントになりますでしょうか。 (クッキー情報は書き換えています) Transfer-Encoding=chunked, keep-alive=timeout=5, max=100, Server=Apache, Cache-Control=no-cache, Access-Control-Allow-Origin=*, Access-Control-Allow-Methods=GET,POST,PUT,DELETE,OPTIONS, Connection=Keep-Alive, Set-Cookie=xxxxxxxxxxxxxx; path=/; secure; HttpOnly, Date=Sat, 24 Mar 2018 10:28:48 GMT, Access-Control-Allow-Headers=Origin, X-Requested-With, Content-Type, Accept, Authorization, Content-Type=text/html; charset=UTF-8} (401の結果だと思いますが)ログイン画面というのは、管理者のログイン画面ではなく会員ログイン画面になります。 |
nkk |
投稿日時: 2018/3/26 11:14
対応状況: −−−
|
半人前 登録日: 2018/3/23 居住地: 投稿: 11 |
Re: EC-CUBE API アクセストークンが取得できない 「会員限定サイトプラグイン for EC-CUBE3」の有効/無効で結果が異なることがわかりました。
今回の原因はこちらのプラグインですね。 URL解析を追加してログイン要求をパスさせる修正が必要になりそうです。 取り急ぎご連絡まで。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |