質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3002閲覧

php oauth2-clientでgetAccessTokenの際にSSL_VERIFYをfalseにしたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/05/23 05:27

いつもお世話になっております。

oauthを実装しているところですが、
以下のGithubのoauthライブラリを使用しています。
https://github.com/thephpleague/oauth2-client

こちらのREADME.mdにある以下のgetAccessTokenにて、

$accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]);

内部的にcurl_execされるのですが、

その際に、開発環境につき、

CURLOPT_SSL_VERIFYHOST = false
CURLOPT_SSL_VERIFYPEER = false

を設定したいです。

CurlFactory.php 317行目で
$option['verify']という値がfalseでくれば
設定できるのですが、それを渡す方法がわかりません。

ためしに以下のコードをやってみましたが有効になりませんでした。

$accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'], ,'curl' => array('verify'=>false), ]);

お手数をおかけしますがなにとぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

オプションを指定するタイミングはgetAccessTokenではなくて
Providerインスタンスの生成時のようです。

oauth2-client/README.md

php

1$provider = new \League\OAuth2\Client\Provider\GenericProvider([ 2 'clientId' => 'XXXXXX', // The client ID assigned to you by the provider 3 'clientSecret' => 'XXXXXX', // The client password assigned to you by the provider 4 'redirectUri' => 'http://my.example.com/your-redirect-url/', 5 'urlAuthorize' => 'http://service.example.com/authorize', 6 'urlAccessToken' => 'http://service.example.com/token', 7 'urlResourceOwnerDetails' => 'http://service.example.com/resource', 8 'proxy' => '192.168.0.1:8888', 9 'verify' => false 10]);

投稿2016/05/23 22:29

nnssn

総合スコア1221

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/24 04:47

ありがとうございます!! なるほど!プロバイダーでしたか!勉強になりました! ちなみに、proxyの指定が無いと、verifyが有効にならないと思います。 proxyサーバーは使っていないので、可能であれば指定したくありません。。 ここでのproxyの意味が、よくわかっていませんが、 oauth後のコールバックURLと同じであれば、 決め打ちは可能ですが。。 ライブラリがproxyが存在したらverifyみるということなので、 そのようにしないとですかね。。 一旦、プロキシで受け取ってverify検証しないようにして、 大元に返すイメージなのか。。勝手な推察でした。 proxy無しでいける方法ございましたら 教えて頂ければ幸いです! 何度もお手数をお掛けして申し訳ございません。
nnssn

2016/05/24 12:21 編集

処理の流れを確認しました。なるほど、getAllowedClientOptionsで はじかれてしまうんですね。 プロバイダーのコンストラクタを改めて見てみると、第二引数で使用クライアントを 注入できる作りになっているように思えました。 https://github.com/thephpleague/oauth2-client/blob/f145fded7d61a5388e76ed720c5dce185c1d36fe/src/Provider/AbstractProvider.php#L108 確認のためissuesで何かverifyに関するやりとがされていないか検索をしたところ 以下のやりとりがありました(ありがとうGoogle翻訳) https://github.com/thephpleague/oauth2-client/issues/467 クライアントに変更を加えたい場合、第二引数で渡すという理解で合っているようです。 $httpClient = 自分で生成したHttpClient(Guzzleインスタンス) $collaborators = ['httpClient' => $httpClient]; $provider = new GenericProvider($options, $collaborators);
退会済みユーザー

退会済みユーザー

2016/05/24 12:44

なるほど!! 重ねてありがとうございます! 非常に勉強になります! おかげ様で解決できました_(_ _)_
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問