Home >Backend Development >PHP Tutorial >Web loginAuthorization verification
Access the data of a service software of the server through Http, the browser will pop up the following verification pop-up box:
Because I want to use the PHP curl method to obtain data, but I don’t know how to set the username and password verification parameters:
I found that it doesn’t work:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
After using postman to simulate login, I found an item in the request header:
Then add a request header to the PHP curl method:
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
In this way, you can request the data.
But the problem is that because the script needs to be placed on the server to run all the time, if this hard-coded verification expires, the verification will fail again and there will be no permission.
How can I set the php Curl username and password parameters so that I can always verify the login?
Access the data of a service software of the server through Http, the browser will pop up the following verification pop-up box:
Because I want to use the PHP curl method to obtain data, but I don’t know how to set the username and password verification parameters:
I found that it doesn’t work:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
After using postman to simulate login, I found an item in the request header:
Then add a request header to the PHP curl method:
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
In this way, you can request the data.
But the problem is that because the script needs to be placed on the server to run all the time, if this hard-coded verification expires, the verification will fail again and there will be no permission.
How can I set the php Curl username and password parameters so that I can always verify the login?
This is PHP HTTP verification, which is generally not done. After all, HTTP verification is too simple
http://php.net/manual/zh/feat...
<code>$username='ABC'; $password='XYZ'; $URL='<URL>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$URL); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code $result=curl_exec ($ch); curl_close ($ch);</code>
Use CURL to simulate login and get Authorization Token
Use the Token obtained in step 1 to make the next request
The Token in step 1 can be cached appropriately, and the cache time depends on the server.
Digression: Personally, I feel that the server side is written by Yii2.
I have done something similar before. After a long time, I found it too troublesome, so I finally solved it with phantomjs. PHP calls the node program.
Add this attribute
<code>$user = 'hello'; $pass = '$world'; curl_setopt($ch, CURLOPT_USERPWD, "{$user}:{$pass}"); </code>