浏览器上的 CakePHP Basic Auth 重定向
CakePHP Basic Auth redirect on browser
我正在使用 CakePHP (2.5.6
) 进行开发,我的目标是同时使用表单和基本身份验证。
我需要这个,因为我从具有基本身份验证的 android 应用调用了一些休息操作。如果用户使用浏览器访问网站我想使用表单授权。
我将 AppController
设置为同时支持两者,并且效果很好。但是,如果我访问需要身份验证的操作,则会弹出基本身份验证警报。
最好的方法是重定向到用户 -> 登录。但是首先弹出基本身份验证警报。
我该如何解决这个问题?有更好的解决方案吗?
我自己解决了这个问题。
我已经为 api 个调用添加了路由前缀。
Configure::write('Routing.prefixes', array('api'));
在 core.php
文件中。
现在我可以在 AppController
的 beforeFilter 中触发 api 调用,并仅为 api 调用添加基本身份验证。
public function beforeFilter()
{
if(isset($this->request->params['api']))
{
// api call
// Pass settings in
$this->Auth->authenticate = array(
'Basic' => array('userModel' => 'User')
);
}
}
示例操作。
PostsController -> 索引
public function api_index {
}
Url: domain.de/api/posts/index.json
我正在使用 CakePHP (2.5.6
) 进行开发,我的目标是同时使用表单和基本身份验证。
我需要这个,因为我从具有基本身份验证的 android 应用调用了一些休息操作。如果用户使用浏览器访问网站我想使用表单授权。
我将 AppController
设置为同时支持两者,并且效果很好。但是,如果我访问需要身份验证的操作,则会弹出基本身份验证警报。
最好的方法是重定向到用户 -> 登录。但是首先弹出基本身份验证警报。
我该如何解决这个问题?有更好的解决方案吗?
我自己解决了这个问题。
我已经为 api 个调用添加了路由前缀。
Configure::write('Routing.prefixes', array('api'));
在 core.php
文件中。
现在我可以在 AppController
的 beforeFilter 中触发 api 调用,并仅为 api 调用添加基本身份验证。
public function beforeFilter()
{
if(isset($this->request->params['api']))
{
// api call
// Pass settings in
$this->Auth->authenticate = array(
'Basic' => array('userModel' => 'User')
);
}
}
示例操作。
PostsController -> 索引
public function api_index {
}
Url: domain.de/api/posts/index.json