首页 > 解决方案 > 我想在 php 中使用 api access_token 验证用户登录

问题描述

我有这个演示链接来获取用户登录的用户验证的访问令牌。

http://testapp.test/app.php/v1/verifyUser?username=admin&password=password&grant_type=password&client_id=6_20jeacfmdv0gwgg4kcgw44swwkoo8ogog8g4gwggwo0wko08ow&client_secret=38311bdlv884wc0ws4g048k0ieei8oc4oc0cmswok8w33o0s9e

使用邮递员发送请求后,我在响应中获取访问令牌

<?xml version="1.0"?>
<user_info>
    <access_token>NGI20QFmNDE1HAUjYWEyMjVlbsryNWRjNGJmOGI5ZDNiLhA1OTI5MjkzZjIwZmE4YmYxOHYwMTQ3NTUzYTdmMg</access_token>
    <expires_in>86400</expires_in>
    <token_type>bearer</token_type>
    <scope/>
    <refresh_token>AWMxYmVhYmFkNDJkOTVjYjM1YWQwNTVmOTcwYmIyKaR98TE1Y2E5KLZkZTY0ZjA3Mjc3MzQzOeGmTTUzODlmYw</refresh_token>
    <user_id>007</user_id>
    <username>admin</username>
    <email>email@admin.com</email>
    <firstname>admin</firstname>
    <lastname>admin</lastname>
    <ip_address>xxx.xxx.xx.xxx</ip_address>
    <last_login>
        <date>2019-07-12 18:21:27.000000</date>
        <timezone_type>4</timezone_type>
        <timezone>Central</timezone>
    </last_login>
</user_info>

我想使用 access_token 身份验证系统使用 PHP 登录网站中的用户。

标签: phpaccess-token

解决方案


这是我的问题的解决方案

   $url = 'http://testapp.test/app.php/v1/verifyUser?username=admin&password=password&grant_type=password&client_id=6_20jeacfmdv0gwgg4kcgw44swwkoo8ogog8g4gwggwo0wko08ow&client_secret=38311bdlv884wc0ws4g048k0ieei8oc4oc0cmswok8w33o0s9e';

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);

    $data = curl_exec($ch); 
    //echo $data;
    if(curl_errno($ch))
    {  
        print curl_error($ch);
    }
    else
    {
      curl_close($ch);
        $xml = simplexml_load_string($data);

        $json = json_encode($xml);
        $var= json_decode($json,true);
    }
    if(isset($var["error"]))
       {
         echo "error";

       }
         else
       {

       $_SESSION['signed_in'] = true;
       $_SESSION['sno']     = $var["user_id"];
       $_SESSION['first_name']  = $var["firstname"];


   }

希望这个答案能帮助那些有同样问题的人。


推荐阅读