我正在尝试将我的HMVC codeigniter安装到以API为中心的HMVC中(是的,我知道!)
目前我已将ion_auth作为授权系统。
我设置的方式是
MODELS
CONTROLLERS
- API CONTROLLER
- CONTROLLER
VIEWS
API控制器接受JSON编码输入并发送JSON编码输出。
现在 - 一切正常 - >我可以通过调用controller/api
来访问API,并且可以将其传递给JSON并接收JSON。
然后我就可以从我的正常controller
我的问题现在来自授权。
没有人可以访问API,如果他们没有通过Ion_auth登录(所以它是安全的)但是
如何公开API?
我认为我需要沿着O Auth
路线前进,但我已经把自己捆绑在一起试图了解如何使用O Auth获取API并且在访问时不会影响我的应用程序的性能通过我的控制器。
归结为不了解O Auth是如何完全工作的(我可以实现它并理解手抖等但是细节) - >如果我找到某种方式通过O Auth验证用户(我的意思是网站用户而不是API用户)如何将其传递给我的控制器 - 是否存储在会话中?我可以给我的控制器授权吗? (我需要)
或者 - 有没有一种方法可以用Ion Auth做这个我还没有听说过?
FOR CLARITY
我希望自己的应用程序能够使用它自己的API,但不知道如何设置authrosiation,以便API可以直接使用,也可以由应用程序本地使用(当用户使用该站点时)
帮助!
提前致谢!
答案 0 :(得分:1)
也许您可以删除API的O auth并只创建一个访问密钥表。当有人调用API时,他需要在表中注册的密钥。不是吗?
答案 1 :(得分:0)
使用促销的答案,加上他指出我所做的一切之后的一点想法就是:
public function __construct()
{
parent::__construct();
//see if they logged in -> if they are no problem as they are obviously using the page through my application, if they aren't then we do checks for the API
if (!$this->authentication->logged_in())
{
$this->token = $this->input->get_post('token');
//API should have a token set before anything can happen, this is for every request
if($this->token){
//Check that the token is valid
if (!$this->checkToken($this->token)){
$this->error('Token did not match');
}
//all clear if we get to here - token matched
}else{ //no token was found
$this->error('No Token was sent');
}
}
}