CodeIgniter OAuth2 Server
CodeIgniter OAuth2 Server, a CodeIgniter package for OAuth2.0 Server,
For OAuth2.0 client: https://github.com/philsturgeon/codeigniter-oauth2
For OAuth2.0: http://oauth.net/2/
Learn OAuth2.0 protocol: http://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/
Also for Chinese guide : http://homeway.me/2015/06/29/build-oauth2-under-codeigniter/
For test result: http://oauth2.homeway.me/oauth/test
Installation
1.Clone pakcage
git clone https://github.com/grasses/codeigniter-oauth2-server /path/to/www/root/
2.Config database -> $db['oauth']
cd codeigniter-oauth2-server
vim application/config/database.php
config dsn
, hostname
, username
, password
, database
3.Import database
mysqldump -u root -p > sql/oauth.sql
Usage
- Password Credentials
class PasswordCredentials extends CI_Controller {
function __construct(){
@session_start();
parent::__construct();
$this->load->library("Server", "server");
$this->server->password_credentials(); //credentials check here
}
function index(){
//code here
}
}
- Client Credentials
class ClientCredentials extends CI_Controller {
function __construct(){
@session_start();
parent::__construct();
$this->load->library("Server", "server");
$this->server->client_credentials(); //credentials check here
}
function index(){
//code here
}
}
- Refresh Token
class RefreshToken extends CI_Controller {
function __construct(){
@session_start();
parent::__construct();
$this->load->library("Server", "server");
}
function index(){
$this->server->refresh_token(); //refresh token
}
}
- Get resource by OAuth2.0 authorize.
class Resource extends CI_Controller {
function __construct(){
@session_start();
parent::__construct();
$this->load->library("Server", "server");
$this->server->require_scope("userinfo cloud file node");//you can require scope here
}
public function index(){
//resource api controller
echo json_encode(array('success' => true, 'message' => 'You accessed my APIs!'));
}
}
- More usage:
for more usage please see: application/controllers/Test.php
Features
-
Support for:
Password Credentials
,Client Credentials
,Implicit Grant
,Authorization Code
grant types. -
Refresh access token
-
From access token get resource data
-
Support for Mysql, Redis, Mongo
License
This library is under the MIT license. For the full copyright and license information, please view the LICENSE file that was distributed with this source code.