2017-08-01 7 views
2

私の目的は本当に簡単ですが、私はすべての文書をオンラインで検索しようとしましたが、有効な結果はありません。Symfonyでカスタムログイン機能(Curlを使用)を作成する方法は?

私はまだSymfonyには全く新しいので、おそらくもっと説明が必要でしょう。

だから、私はこのページのすべての指示に従った:https://symfony.com/doc/current/security/custom_provider.html

しかし、私は私が実装するのか分からないもの、ここでは、このサンプルコードに貼り付けています。

// make a call to your webservice here 
$userData = ... 
// pretend it returns an array on success, false if there is no user 

if ($userData) { 
    $password = '...'; 

    // ... 

私自身の機能を使用してサードパーティのウェブサイトにログインしたいと考えています。非公式のログイン(セキュリティにかかわらず)のため、私はCurlを使用し、その内部のSet-Cookieヘッダーをチェックします。ここで

は、私はsymfonyのなしで使用する例です。

function checkLogin($username, $password) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,"https://example.com/login"); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$username&password=$password"); 

    $header = curl_exec($ch); 
    curl_close ($ch); 

    return (bool)preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $header); 
} //Return true = username and password is correct, hence I can follow up on my own site. 

任意の助けをいただければ幸いです。ありがとう!

+0

私の答えがあなたにとって役に立ちましたら、それを受け入れてください。あなたの質問に完全に答えることができない場合は、何が解決されていないのかを明確にしてください。 – svgrafov

答えて

0

Token,Listenerを作成して、ユーザーのリクエストからトークンを作成し、AuthenticationProviderSymfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterfaceを実装する必要があります。

http://symfony.com/doc/current/security/custom_authentication_provider.htmlはそれについて質問をし、そのクロス元ポリシーは、ホストからのリクエストを許可するかどうかを確認することを躊躇しないでください:ここで

は実装例です。

+0

情報をありがとう、 '認証プロバイダ'の 'authenticate'関数を修正して、私の関数を実装するにはどうすればいいですか?それとも、私は間違った場所を見ていますか?ありがとう –

+0

あなたはあなたが望むだけそれを変更することができます:)認証ロジックは、その関数の中で正確に呼び出されます。あなたのケースでは、外部APIへのリクエスト。 – svgrafov

+0

遅く返事を申し訳ありません。ウェブサイトのすべての手順(すべてのコードを文字通りコピーした)を実行した後、私はこのエラーメッセージを受け取りました:https://pastebin.com/3U59zmFY。どうすれば解決できますか?ありがとう –

関連する問題