簡體   English   中英

cakephp rest api和身份驗證

[英]cakephp rest api and authentication

我正在使用cakephp 2.4.7進行開發,我非常困惑,我不知道實現我所需的最佳方法是什么。

我的蛋糕項目類似於社交網絡,並且我已經編寫了Web部分的很大一部分。 現在,我想開始為本地移動應用程序(iOS,Android等)開發API。

在我的項目中,我使用標准的form authentication進行普通的Web瀏覽器方式。

我如何同時使用basic authenticationform authentication Web瀏覽器使用的表單身份驗證和本機Mobiel應用程序的基本身份驗證。

我的AppController看起來像:

public $components = array(
    '...',
    'Auth' => array(
        'loginRedirect' => array(
            'controller' => 'users',
            'action' => 'index'
        ),
        'logoutRedirect' => array(
            'controller' => 'users',
            'action' => 'login'
        ),
        'authError' => 'You must be loggedin to view this page.',
        'loginError' => 'Invalid user credentials.',
        'authorize' => array('Controller'),
        'authenticate' => array(
            'Form' => array(
                'userModel' => 'User',
            )
        ),
        'authorize' => array(
            'Actions' => array('actionPath' => 'controllers')
        )
    )
);

我知道文檔的這一部分:

使用多個處理程序可以使您支持登錄用戶的不同方式。登錄用戶時,將按照聲明它們的順序檢查身份驗證處理程序。

但是login操作呢?

有更好的解決方案嗎? 例如,使用令牌進行身份驗證。

我搜索了很多有關API versioningprefix routing 我發現的唯一結果是,cake 2.x不支持前綴路由。

我的目標是具有以下結構:

  • /users/view/2用於網絡瀏覽器)
  • /api/1.0/users/view/2.json用於移動應用。

在UsersController中:

public function view($id = null) {
// Webbrowser
}

public function api_1_0_view($id = null) {
// mobile app version 1.0
}

public function api_2_0_view($id = null) {
// mobile app version 2.0
}

您能給我一個我如何解決問題的想法嗎?

Basic是無狀態身份驗證,不需要登錄操作。 憑據將根據每個請求進行傳遞和檢查。 您可以在這里閱讀更多信息。

盡管可以將AuthComponent配置為使用多個身份驗證器,但最好不要同時使用無狀態和有狀態的身份驗證提供程序。 在您的AppController的beforeFilter()中,您應該檢查網址(在這種情況下應該很容易,因為來自移動設備的所有網址都帶有“ api”前綴),並有選擇地使用FormBasic身份驗證提供程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM