基本HTTP身份验证阻止用户添加书签

时间:2017-05-23 12:46:39

标签: ruby-on-rails devise basic-authentication

我有coffeeshops的资源,我允许用户同时使用favoritebookmark个咖啡店。

我在coffeeshop控制器上也有http_basic_authenticate_with,以防止除我之外的任何人写入我的数据库。

我的当前设置似乎不允许用户实际favoritebookmark,除非他们已登录。

我该如何解决这个问题?我也在使用Devise进行用户管理,我是否可以利用它来限制对数据库的写访问权限,允许我删除http_basic_authenticate_with

coffeeshop_controller.rb

class CoffeeshopsController < ApplicationController
http_basic_authenticate_with name: "*******, password: "*******", except: [:index, :show]

我尝试将此更新为[:index, :show, :put],但这没有任何区别。

1 个答案:

答案 0 :(得分:0)

except中你应该列出控制器动作而不是http方法,如下所示:

class CoffeeshopsController < ApplicationController
  http_basic_authenticate_with name: "*******", password: "*******", except: [:index, :favorite, :bookmark]
  def index
    # list of coffeeshops without authentication
  end

  def new
    # requires authentication
  end

  def create
    # requires authentication
  end

  def favorite
    # endpoint to mark coffeeshop as favourite without authentication
  end

  def bookmark
    # endpoint to bookmark a coffeeshop without authentication
  end
  ...
end