94hwan-PHP框架基本原理

Source:94hwan 与众不同  Author:网络部
2010-06-17 16:23

由于考虑以后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)
例:

  1. $pua = new pub_user_api(); 
  2. $rs = $pua->get_user_faces('34234,34244,43422,43434,54535,54784,66665'); 
  3. echo '获得用户表情信息<xmp>'
  4. print_r($rs); 
  5. 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()
检查用户是否已经登录。

  1. if$pua->is_login() ) 
  2.     $infos = $pua->get_user_infos($pua->get_user_id(), 'user_id'); 
  3.     echo '<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />'
  4.     echo "<a href='".API_CONTROL_URL."' target='_blank'>94hwan用户中心</a> &nbsp; <a href='test.php?do=exit'>退出登录</a>"
  5.     echo '<xmp>'
  6.     print_r( $infos ); 
  7.     echo '</xmp>'
  8.     exit(); 

 

...