13

目前我有一個rails 3應用程序,它使用devise插件進行網站驗證。但現在我將添加一個iPhone應用程序,所以我將把api調用暴露給客戶端設備(iPhone)。我將如何實現auth模塊,以便iPhone客戶端可以對rails站點進行身份驗證並訪問一些api?在rails 3中的api驗證

我應該創建一個oauth提供程序,令牌庫驗證或簡單的http驗證是否有效?

回答

8

在這種情況下,HTTP基本身份驗證會正常工作。如果您希望它更安全,您可以創建OAuth提供程序並創建自己的Twitter xAuth實現,以使其更加用戶友好。實質上,您需要創建一個API調用來接受用戶名和密碼,然後爲該用戶返回一個OAuth請求令牌。您將該請求令牌存儲在iPhone上並使用它來驗證後續請求。

+0

你能發表一個代碼片斷,瞭解ruby代碼中的請求如何使用令牌嗎? – Gotjosh 2011-08-12 13:06:47

+0

OAuth是一個相當複雜的話題,所以我簡化了很多,但實質上在初始OAuth連接期間,您將生成一個訪問令牌並將其存儲在數據庫中以及它所屬的用戶。當您向API發出請求時,您將提供訪問令牌。然後,您的服務可以查找誰擁有訪問令牌並相應地進行身份驗證/授權。查找Ruby OAuth提供程序庫。 – 2011-08-15 04:42:36