gpt4 book ai didi

authentication - 未找到 sinatra-authentication 路线

转载 作者:行者123 更新时间:2023-12-04 06:38:16 27 4
gpt4 key购买 nike

我正在尝试将 sinatra-authentication gem 添加到 Sinatra 应用程序中,虽然它在那里并完成了它的一部分工作,但由于某种原因,路由似乎没有被添加。代码基础:

require 'sinatra'
require 'digest/sha1'
require 'rack-flash'
require 'mongo_mapper'
require 'sinatra-authentication'

MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017, :pool_size => 5, :pool_timeout => 5)
MongoMapper.database = 'cms'

module CmsMod
class CmsApp < Sinatra::Base
use Rack::Session::Cookie, :secret => 'something secret'
use Rack::Flash

get '/' do
#redirect to('/list') # commented out for testing
end

get '/private' do
login_required
'Protected Page'
end

然后剩下的事情。症状是将浏览器指向我的正常路线工作正常。转到 '/private' 会正确地重定向到 '/login',但我收到旧的“Sinatra 不知道这个小曲”消息;如果我尝试直接访问 '/login' 也是一样。我尝试使用 'binding.pry' 来检查 get 块中的内容,并且从我可以看出的路由不存在。关于可能导致这种情况的任何想法将不胜感激。

最佳答案

看了library's source ,它是作为扩展编写的,但示例和文档没有提到扩展是如何注册的。尝试这个:

module CmsMod
class CmsApp < Sinatra::Base
register Sinatra::SinatraAuthentication # <= this is the missing magic line.

然后应该出现路线。顺便说一句,我还建议使用 encrypted_cookie gem 。
use Rack::Session::Cookie, :secret => 'something secret'

变成:
use Rack::Session::EncryptedCookie, :secret => 'something secret'

关于authentication - 未找到 sinatra-authentication 路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com