red*_*rom 1 php authentication cakephp login
基于CakePHP的REST API中的admin_login方法存在问题.
前端是REST api后端是经典的CakePHP管理部分(基于管理员前缀)
我尝试解释我是如何尝试为应用程序的管理员部分创建登录功能.
我在routes.php中添加了路由
Router::connect('/admin', array('controller' => 'users', 'action' => 'admin_login'));
Router::connect('/admin/logout', array('controller' => 'users', 'action' => 'admin_logout'));
Run Code Online (Sandbox Code Playgroud)
在appController中我添加了auth模块
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'admin_login'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'admin_logout'),
'authError' => 'You must be logged in to view this page.',
'loginError' => 'Invalid Username or Password entered, please try again.'
));
Run Code Online (Sandbox Code Playgroud)
并进入beforeFiler回调允许的方法
public function beforeFilter() {
parent::beforeFilter();
// TODO THIS SHOULD BE DEFINED ON EACH CONTROLLER SEPARATED
$this->Auth->allow('view', 'index','add','admin_login');
Run Code Online (Sandbox Code Playgroud)
在Users控制器中,我添加了admin_login方法
public function admin_login() {
die('test');
}
Run Code Online (Sandbox Code Playgroud)
还有admin_login.ctp模板文件.
但如果我试图获取URL:
我总是得到这个错误消息>
Private Method in UsersController
Error: UsersController::admin_login() cannot be accessed directly.
Run Code Online (Sandbox Code Playgroud)
问题是>
我该如何解决它以及我做错了什么?
您用于管理员前缀操作的url数组不正确.例如.而不是array('controller' => 'users', 'action' => 'admin_login')你需要使用array('controller' => 'users', 'action' => 'login', 'admin' => true).
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |