PHP

首页 -  PHP  -  敦煌用户认证(获取access_token)

敦煌用户认证(获取access_token)

敦煌用户认证(获取access_token)

一般开发我们会根据code获取access_token这样我们可以得到refresh_token来进行刷新access_token

本片文章我已Laravel5.4框架为大家介绍

//定义获取code路由
Route::get('oauth/user,'OauthController@oauthUser');
//获取code
public function oauthUser()
{
    $url ='https://secure.dhgate.com/dop/oauth2/authorize?';
    $get['response_type'] = 'code';
    $get['client_id'] = '您申请的client_id';
    $get['redirect_uri'] = 'http://127.0.0.1/oauth/redirect_uri’ //回调地址 
    $get['scope'] = 'basic';
    $get['state'] = $user->name;
    foreach ( $get as $k=>$v )
    {
      $url.= "$k=".urlencode($v)."&";
     }
    $url = substr($url, 0, -1);
    return redirect($url);
}

//回调地址路由
Route::get('oauth/redirect_uri','OauthController@redirect_uriCode');
//根据回调带着得到token
public function redirect_uriCode( Request $request )
{
    $url = 'https://secure.dhgate.com/dop/oauth2/access_token?';
    $get['grant_type'] = 'authorization_code';
    $get['code'] = $request->input('code');
    $get['client_id'] = '您申请的client_id';
    $get['client_secret'] = '您申请的client_secret';
    $get['redirect_uri'] = 'http://127.0.0.1/oauth/redirect_uri’ //回调地址 
    foreach ( $get as $k=>$v )
    {
        $url.= "$k=".urlencode($v)."&";
    }
    $url = substr($url, 0, -1);
    $redirect = @file_get_contents($url); //这里你可以改用curl方式
    $redirect = json_decode( $redirect );
    //$redirect 返回的就是您需要的token对象
    
    
    //如果你还需要用户下面你可以根据token得到用户信息
    $getUserUrl = 'http://api.dhgate.com/dop/router?';
    $us['access_token'] = $redirect->access_token;
    $us['method'] = 'dh.user.seller.get';
    $us['timestamp'] = substr(floor(microtime(true) * 1000),0);
    $us['v'] = '2.0';
    foreach ( $us as $ks=>$vs )
    {
        $getUserUrl.= "$ks=".urlencode($vs)."&";
    }
    $getUserUrl = substr($getUserUrl, 0, -1);
    $userInfo = @file_get_contents($getUserUrl);
    $userInfo = json_decode( $userInfo );
    //返回用户信息

}
(0)
分享:

本文由:xiaoshu168 作者:xiaoshu发表,转载请注明来源!

标签:

相关阅读