Ответ 1
Это может быть слишком поздно, но в любом случае. Я бы рекомендовал вам использовать Pundit для авторизации, это смертельно просто. Чтобы использовать его в конечных точках API Grape, вам нужно будет включить помощников Pundit:
class API < Grape::API
format :json
helpers Pundit
helpers do
def current_user
resource_owner
end
end
mount FoosAPI
end
Теперь в ваших конечных точках API вы сможете использовать authorize foo, action?
, как вы всегда делали бы в контроллерах Rails:
class FoosAPI < Grape::API
get ':id' do
foo = Foo.find(params[:id])
authorize foo, :show?
present foo, with: FooEntity
end
end
Надеюсь, что это поможет!