2
Q
使用清除API
A
回答
3
爲了解決這個問題,我最終覆蓋了ApplicationController
和User
模型上的authenticate
方法。它看起來是這樣的:
class ApplicationController < ActionController::Base
include Clearance::Controller
include Clearance::Authentication
def authenticate(params)
if request.headers['AUTH-TOKEN']
return nil unless user = User.where(remember_token: request.headers['AUTH-TOKEN']).first
sign_in user
else
User.authenticate(params[:session][:email], params[:session][:password])
end
end
#rest of class omitted for bevity
end
然後我子類SessionsController
覆蓋create
方法,像這樣:
class SessionsController < Clearance::SessionsController
def create
@user = authenticate(params)
sign_in(@user) do |status|
respond_to do |format|
if status.success?
format.html { redirect_back_or url_after_create }
format.json { render json: @user, status: :ok }
else
format.html do
flash.now.notice = status.failure_message
render template: 'sessions/new', status: :unauthorized
end
format.json { render json: [errors: status.failure_message], status: :unauthorized }
end
end
end
end
#rest of class omitted for bevity
end
然後,所有你需要做的測試或使用被AUTH-TOKEN
頭設置請求到users
記住令牌,並且您已全部設置。我選擇使用記憶標記,因爲每當用戶註銷時都會更新記憶標記。您可能不希望發生這種情況,而可能會在您的模型上生成auth_token
字段,並將where
更改爲使用新字段。
相關問題
- 1. 清除使用JSP
- 2. RouteXL API清除遊覽
- 3. 使用HTTP和REGEX的清漆清除
- 4. 清除曲奇 - 使用Javascript
- 5. 驗證/清除使用Dojo
- 6. C#使用清除處理
- 7. 使用jQuery清除表格
- 8. 使用div清除元素:
- 9. 使用jQuery清除IMG
- 10. 不使用浮標清除
- 11. 使用jQuery清除表單
- 12. 使用J2ME清除畫布
- 13. 使用javascript清除gridview/jquery
- 14. 使用$('#DivId')。html('')清除div。
- 15. 使用JavaScript清除功能
- 16. 使用XAML清除綁定
- 17. 使用spring-mongodb清除mongodb
- 18. 清除使用的NSManagedObjectContext
- 19. 使用ncftp清除隊列
- 20. 如何使用Google Maps API V3清除矩形
- 21. 如何使用Apache.NMS API以編程方式清除ActiveMQ隊列?
- 22. 使用API清除多選擇選擇列表的價值
- 23. 嘗試使用Google Calendar API v3清除日曆時是403嗎?
- 24. 如何使用Sitecore API清除特定的XSLT緩存?
- 25. 如何清除Word使用JavaScript API撤消堆棧
- 26. 使用hg清除時排除目錄
- 27. 清除表格使用敲除
- 28. 引導窗體使用重置按鈕清除錯誤清除
- 29. 在相機的「清除標誌」屬性中使用「不清除」
- 30. 使用宏清除WorkSheet的內容而不清除剪貼板