php对接一网通,先安一网通平台

PHP应用接入指引

1 阅读前提

本开发攻略基于使用Authorization Code获取Access Token的授权验证流程,适用于需要从web server访问的应用,例如Web/wap网站。

OAuth2.0的授权验证示意图如下所示:

af0e1321cc774db078615b8799ea1595.png

对于应用而言,需要进行两步:

1)获取Authorization Code;

2)通过Authorization Code获取Access Token

2 接入准备

1)请确保您准备接入的Spark平台服务已经启用,并核实各服务端口是否可以正常访问,默认Oauth服务端口为443

2)请确认您的应用已经在Spark平台创建,并成功获取app_ID和app_KEY

3 引用SDK,修改配置文件相关内容

请将Oauth.php添加到项目中。然后修改Oauth.php中的Config 类的配置信息。文件内容如下图所示,请根据应用真实情况修改该文件。

class Config{

/**

* app_ID 应用标识

* app_KEY 应用密码

* redirect_URI 回调地址

*

* oauth_base_URL 授权服务

* openapi_base_URL api服务

* 以上参数需要根据应用的实际部署参数配置

* 可以使用spark应用管理员登陆spark portal 下载制定应用的KEY

* 根据下载下来的配置信息内容 修改以下参数值

*/

public static $items = array(

'app_ID' => '8a303e4ab5314932be755fbea6a33d04',

'app_KEY' => 'Dz6KNcls',

'redirect_URI'=>'http://192.168.10.159/workspace/test/callback.php',

'scope'=>'user',

'oauth_base_URL'=>'https://192.168.10.130/oauth2',

'openapi_base_URL'=>'https://192.168.10.130/openapi',

'authorize_URL'=>'/oauth/authorize',

'access_token_URL'=>'/oauth/token',

'get_openID_URL'=>'/oauth/me',

'get_user_info_URL'=>'/user/get_user_info',

'get_user_extension'=>'/user/get_user_extension',

'direct_get_user_extension_URL'=> '/user/direct_get_user_extension',

'direct_bind_user_extension_URL'=>'/user/direct_bind_user_extension',

'bind_user_extension_request_URL'=>'/user/direct_bind_user_extension',

'parse_user_cert_URL'=>'/user/parse_user_cert'

);

}

4 放置Spark账号登录

在应用首页入口和主要的登录、注册页面上放置“Spark账号登录”标识(见红色方框标记处):

be2dc5075a980135470d18ca937b9759.png

“Spark账号登录”的连接可直接或间接跳转到Spark的统一认证登录页面,具体的访问地址为:

https://oauth_ip:oauth_port/oauth2/oauth/authorize?client_id=[YOUR_APP_ID]&redirect_uri=[YOUR_REDIRECT_URI]&response_type=code&state=[THE_STATE]&scope=[THE_SCOPE]

间接跳转的方式为,“Spark账号登录”的连接指向应用的一个ACTION,在该ACTION中通过SDK加载提前设置好的配置文件,然后组装统一认证登录页面URL,最后重定向到该URL。

例如:“Spark账号登录”链接指向“http://192.168.10.159/workspace/test/login.php”,部分源代码如下:

require 'Oauth.php';

//跳转到统一认证登陆

$oauth=new Oauth();

echo $oauth->getAuthorizeURL();

header("Location: ".$oauth->getAuthorizeURL());

?>

5 获取Authorization Code

在上一步,页面跳转到Spark的统一认证登录页面后,用户选择登录认证方式登录,成功登录后,弹出授权框引导用户授权(仅在第一次成功登录,以及第一次访问某个未授权的OpenAPI时会出现授权页),如下图所示:

be52c94fdc62a754686b060077649b3d.png

用户点击“确认并授权”后,页面会再次重定向到应用的回调地址(即在spark_connect_config.properties配置的redirect_URI),如下图所示:

#应用回调地址

redirect_URI = 'http://192.168.10.159/workspace/test/callback.php

6 通过Authorization Code获取Access Token

在上一步中,用户登录成功并确认授权后,页面由Spark统一认证登录跳转到应用的回调地址,如:http://192.168.10.159/workspace/test/callback.php。这时,可通过SDK获取Authorization Code,并通过Authorization Code获取Access Token。如下所示:

$oauth=new Oauth();

$accessToken=$oauth->getAccessToken();

if ($accessToken->accessToken){

特别提示:获取到的access token具有3个月有效期,用户再次登录时自动刷新。应用可存储access token信息,以便后续调用OpenAPI访问时使用。

7 使用Access Token获取用户的OpenID

成功获取Access Token后,可通过Access token获取OpenID。

$openid=$oauth->getOpenId($accessToken->accessToken);

8 使用Access Token以及OpenID来调用OpenAPI

成功获得OpenID后,可通过Access Token和OpenID调用OpenAPI接口获得用户信息或者用户属性信息等。如下所示:

$user=$oauth->getUserInfo($accessToken->accessToken, $openid);

echo "
getUserInfo->loginAccount:".$user->loginAccount;

$extension=$oauth->getUserExtension($accessToken->accessToken, $openid);

注意:是否使用OpenAPI取决于应用需要,如不需要可以忽略此步骤。

9 SDK及Demo下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值