【发布时间】:2016-08-06 01:17:37
【问题描述】:
我正在构建一个同时具有 API 和 UI 的 Rails 应用程序,我已经为 API 实现了 HTTP 令牌身份验证(标头),并希望尽可能继续为 Web 应用程序使用相同的方法。
我将用户令牌保存在session[:token] 并使用authenticate_or_request_with_http_token 方法进行身份验证。
application_controller 具有 before 过滤器,并且所有其他控制器都被继承,因此 API 中的每个端点和 Web 应用程序中的每个页面都需要 HTTP 标头令牌。
API 工作正常,因为合作伙伴应用程序每次都发送令牌以访问端点,但在 Web 应用程序的情况下,我们第一次获得令牌(当用户从合作伙伴应用程序重定向时)并且控制权转移到我们的应用程序.然后我们需要一种方法来为 rails 应用程序中的每个路由/页面发送 HTTP 标头令牌。如果这看起来很复杂,请建议我一种方法,或者一种完全不同的方法。
编辑:
def authenticate_user
authenticate_or_request_with_http_token do |token, options|
user_id = Setting.long_decode_id(token)
user = User.find_by(id: user_id)
if (user.present?)
session[:api_current_user] = user.id
【问题讨论】:
标签: ruby-on-rails http authentication http-headers http-token-authentication