如何在Sinatra中设置身份验证?

时间:2016-11-23 06:46:49

标签: ruby sinatra warden

我需要对博客进行简单的身份验证。对于一个人。只需登录网站

即可

无法配置sinatra_warden。写下行

require 'rubygems'
require 'sinatra'
require 'pry-byebug'
require "sinatra/activerecord"
require "carrierwave"
require "carrierwave/orm/activerecord"
require 'sinatra_warden'
require 'warden'

register Sinatra::Warden

use Rack::Session::Pool
app.rb

,但我收到错误

NoMethodError: undefined method `register' for main:Object

已经安装了gem sinatra_warden。写得好require "warden"& require "sinatra_warden"

sinatra_warden 0.3.2

看守1.2.6

当我在控制器中添加authorize!方法时,出现错误

undefined method `authorize!'

1 个答案:

答案 0 :(得分:1)

由于您未使用sinatra/base,因此您应添加sinatra/namespace。添加到app.rb这需要require "sinatra/namespace"

  

Sinatra::Namespace是一个将命名空间添加到的扩展名   应用。此命名空间允许您共享路径前缀   命名空间内的路由,并定义过滤器,条件和   错误处理程序专门为他们。除此之外,你也可以   注册助手以及仅在其中使用的扩展程序   命名空间。

或者将您的应用程序更改为模块化样式:

require "sinatra/base"

class MyApp < Sinatra::Base
  register Sinatra::Warden

  # The rest of your modular application code goes here...
end