由于考虑以后94hwan内集成项目越来越多,为了更方便的使用集成模式对用户访问用户数据库隔离,使用类似SNS的API接口进行用户操作,不过由于考虑项目都是使用94hwan域名,检验用户是否登录部份的程序是以cookie为依据的,API具体方法如下:
接口必要文件:
library/pub_encryption.php
library/pub_user_api.php
打开:pub_user_api.php
修改
define('API_CONTROL_URL', 'http://my-111.demo.94wan.com'); //用户中心网址
define('API_APP_ID', 'wo'); //当前应用标识ID
define('API_APP_KEY', 'DWF43gd8786fkl658P'); //通讯key
几个项目的设置,如果能正常通信成功,表示这个接口可用
测试通讯的方法:
$pua = new pub_user_api();
$rs = $pua->test();
pfint_r( $rs );
本类使用时必须初始化,目前已经实现的接口如下:
1、$obj->is_login();
用户否已经登录
2、$obj->get_user_id();
获得当前登录用户的id
3、$obj->get_user_infos($user_id, $type='user_id');
获得指定用户 id 的资料
type 为 user_id | email | user_name 之一
4、$obj->get_user_score($user_id); 获得指定id用户的积分
5、$obj->get_user_level($user_id);
获得指定id用户的等级
6、$obj->get_login_url($ref_url='')
获得用户登录的网址
7、$obj->get_login_out_url();
获得用户注销的网址
8、$obj->get_user_faces($user_ids);
获得多个用户的头像、签名、昵称、用户ID信息($user_ids 为用','逗号分开的多个用户ID)
例:
- $pua = new pub_user_api();
- $rs = $pua->get_user_faces('34234,34244,43422,43434,54535,54784,66665');
- echo '获得用户表情信息<xmp>';
- print_r($rs);
- echo '</xmp>';
9、$obj->get_login_log($user_id = 0, $num=1)
获取用户登录日志
当user_id为0并且当前用户已经登录时,表时当前登录用户
10、跨域P3P登录方法
$rs = $pua->check_user($account, $passwd, '客户ip', '当前网址');
首先指定要登录的用户名,如果正确,会返回一个保存了用户部份信息的数组,错误则返回一个错误原因字符串(utf-8)
确认用户正确后,用
$p3p_domain = '.888.com';
$back_url = 'http://www.888.com/test.php';
header('location:'.$pua->p3p_login($back_url, $rs, $account, true, $p3p_domain));
这种方式登录,这个网址终是会返回到 $back_url 的。
在 test.php 可以用
$pua->is_login()
检查用户是否已经登录。
- if( $pua->is_login() )
- {
- $infos = $pua->get_user_infos($pua->get_user_id(), 'user_id');
- echo '<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />';
- echo "<a href='".API_CONTROL_URL."' target='_blank'>94hwan用户中心</a> <a href='test.php?do=exit'>退出登录</a>";
- echo '<xmp>';
- print_r( $infos );
- echo '</xmp>';
- exit();
- }
|