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.94hwan.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(); 

 

...