2015-09-30 62 views
0

根據cakephp official document的版本3,它聲明配置AuthComponent。所以我做的是我在public function initialize方法中的代碼下面添加了AppController。Cakephp 3需要基本身份驗證澄清

$this->Auth->config('authenticate', [ 
    'Basic' => [ 
     'fields' => ['username' => 'username', 'password' => 'api_key'], 
     'userModel' => 'Users' 
    ] 
]); 

然後在UsersTable我添加下面的代碼,爲用戶生成新的API密鑰:

​​

什麼我想了解的是API密鑰如何以及在何處得到店?當我創建新用戶時,我不知道我在哪裏可以找到api_key

我是否需要在Users表中創建一個名爲api_key的列來爲用戶存儲密鑰?官方文件沒有說明如何訪問密鑰並在基本認證中使用它。

回答

0

我是否需要在Users表中創建一個名爲api_key的列,以便爲用戶存儲密鑰?

當然。什麼讓你覺得它會被神奇地存儲在任何地方?

官方文檔並沒有說明如何訪問密鑰並在基本身份驗證中使用它。

It does.閱讀前三段。要麼你沒有閱讀它,要麼你不知道Basic auth是如何工作的。 Look this up here

$this->Auth->config('authenticate', [ 
    'Basic' => [ 
     'fields' => ['username' => 'username', 'password' => 'api_key'], 
     'userModel' => 'Users' 
    ] 
]); 
+1

謝謝你的客氣話:如果您的客戶端使用基本身份驗證,併發送正確的信息,該適配器將自動照顧它,看看用戶了,這正好由你將代碼粘貼完成@burzum。我的問題與天氣無關,我瞭解基本認證與否。我想了解api_keys的存儲位置。非常感謝你澄清這一點。但是,我不同意你的陳述「閱讀前三段」。我沒有看到任何參考,指出需要在Users表中創建一個新列。 – Ray

+1

不解決問題。這個答案基本上說「你沒有閱讀文檔,你不明白它是如何工作的。」這兩點都是問題被問到的可能原因。文檔模糊地引用了「身份驗證對象」和getUser方法,但未能說明這些元素連接的位置和方式。 –