PHP oauth2.0框架,【PHP】基于ThinkPHP框架搭建OAuth2.0服务

这几天一直在搞OAuth2.0的东西,写SDK啥的,为了更加深入的了解服务端的OAuth验证机制,就自己动手搭了个php下OAuth的环境,并且将它移植到了自己比较熟的tp框架里。

废话不少说,开动。

其实网上是有OAuth2.0的php版本的。

你可以在http://code.google.com/p/oauth2-php/ 找到源代码,上面实现了PDO和MongoDB的数据模式。这里我也是基于这些代码在TP中进行整合的。

好,这里我们可以把下载下来的包解压,把Lib下的OAuth.inc改名为OAuth2.class.php后放到tp核心包下的目录下:

Tree代码

0818b9ca8b590ca3270a3433284dd417.png

/Extend/Library/ORG/OAuth/OAuth2.class.php

接下来我们要继承这个类;

在这个目录下新建一个ThinkOAuth2.class.php文件:

Php代码

0818b9ca8b590ca3270a3433284dd417.png

/**

* @category ORG

* @package ORG

* @author Leyteris

* @version 2012.3.16

*/

// OAUTH2_DB_DSN  数据库连接DSN

// OAUTH2_CODES_TABLE 服务器表名称

// OAUTH2_CLIENTS_TABLE 客户端表名称

// OAUTH2_TOKEN_TABLE 验证码表名称

import("ORG.OAuth.OAuth2");

class ThinkOAuth2 extends OAuth2 {

private $db;

private $table;

/**

* 构造

*/

public function __construct() {

parent::__construct();

$this -> db = Db::getInstance(C('OAUTH2_DB_DSN'));

$this -> table = array(

'auth_codes'=>C('OAUTH2_CODES_TABLE'),

'clients'=>C('OAUTH2_CLIENTS_TABLE'),

'tokens'=>C('OAUTH2_TOKEN_TABLE')

);

}

/**

* 析构

*/

function __destruct() {

$this->db = NULL; // Release db connection

}

private function handleException($e) {

echo "Database error: " . $e->getMessage();

exit;

}

/**

*

* 增加client

* @param string $client_id

* @param string $client_secret

* @param string $redirect_uri

*/

public function addClient($client_id, $client_secret, $redirect_uri) {

$time = time();

$sql = "INSERT INTO {$this -> table['clients']} ".

"(client_id, client_secret, redirect_uri, create_time) VALUES (\"{$client_id}\", \"{$client_secret}\", \"{$redirect_uri}\",\"{$time}\")";

$this -> db -> execute($sql);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值