网上没找到相关的文章,在这里发一下。
密码在数据库里明文储存的情况。
require 'rubygems'
require 'sinatra'
class MyAuth < Rack::Auth::Digest::MD5
def initialize(*args)
super
self.opaque = 'this-should-be-secrest'
end
end
use MyAuth, 'test1' do |username|
{'admin' => 'admin'}[username]
end
get '/' do
'Welcome!'
end
如果需要将保存在数据库里的密码加密,需要将其按MD5('username:realm:password')的形式加密,既ha1。
require 'rubygems'
require 'sinatra'
require 'digest/md5'
class MyAuth < Rack::Auth::Digest::MD5
def initialize(*args)
super
self.passwords_hashed = true
self.opaque = 'this-should-be-secrest'
end
end
use MyAuth, 'test1' do |username|
{'admin' => ::Digest::MD5.hexdigest(['admin', 'test1', 'admin'] * ':')}[username]
end
get '/' do
'Welcome!'
end
中间件Rack::Auth::Digest::MD5必须设置opaque的值才能使用,除了继承我还没找到其他办法。
分享到:
相关推荐
Sinatra::Synchrony允许我们做异步程序,除了那些在Fibers中封装了回调操作的。这让我们能够实现同步程序的同时利用异步代码的优势。除了可以这样简单地变成,它也让我们根据需要可以转换一个不同的并发策略。
《JumpStart Sinatra》这本书由 Darren Jones 编写,旨在帮助读者在短时间内掌握 Sinatra 的核心概念和技术细节。 #### 二、书籍概述 本书名为《JumpStart Sinatra》,由 SitePoint Pty. Ltd. 出版,版权所有 ©...
在Ruby社区中,Sinatra被誉为轻量级、简洁的HTTP服务器接口库,而Padrino则是在这个基础上进一步扩展,加入了更多用于构建实际应用程序的功能。 首先,我们来深入了解Ruby-Padrino的核心特性: 1. **模块化结构**...
Sinatra在Ruby世界里以其简洁、高效的语法而著名,使得开发者能快速构建Web应用。Pinatra同样致力于提供这样的体验,为PHP开发者提供一种轻量级、面向表达式的Web开发解决方案。 【描述】提到"Sinatra的一个PHP复制...
sinatra-pubsub, 为 Sinatra 推送&流 Sinatra::PubSubPubSub是对 Sinatra的扩展,它增加了使用HTML5服务器发送事件的基本发布/订阅流。例如客户端可以订阅以下事件:var es = new EventSource('/subscribe
almost-sinatra, Sinatra 重构,现在只有六个行 比一双袜子更受欢迎 几乎 Sinatra "until programmers stop acting like obfuscation is morally hazardous,they're not artists, just kid
当前示例authentication目录包含一个示例 Sinatra 应用程序,它实现了基本的用户身份验证,即注册、登录和注销。public-file-upload目录包含一个示例 Sinatra 应用程序,该应用程序实现了一个基本的照片库,以演示...
在"sinatra-template-源码.rar"这个压缩包中,我们有机会深入理解Sinatra的工作原理及其模板引擎的实现。 一、Sinatra基础 1. 微型框架:Sinatra的初衷是创建一个小型、可嵌入的HTTP服务器,它的核心思想是通过DSL...
这个rake命令为您在后台运行bundle exec shotgun config.ru ,并在Sinatra的默认端口9393上启动该应用程序,现在将可以在您的Web浏览器中通过以下URL 查看该应用程序。 您还需要在同一个目录中打开一个新的终端窗口...
目前,我不确定将该服务器封装在 Sinatra 或 Rack 应用程序中是否可行。 也许会更新和处理它? 与此同时,我一直在 Docker 容器中运行该应用程序: 安装 将此行添加到应用程序的 Gemfile 中: gem 'kibana-...
您可以在子目录中找到Real World Sinatra应用程序的源代码。 感谢所有开发此回购链接的项目的开发人员,您的工作正在帮助开发人员学习Sinatra。 如何在电脑上安装 # Clone this git repo: git clone git@github....
它将以最小的配置生成Sinatra应用程序。 这个项目背后的原因是因为我想创建许多基于sinatra的小型Web应用程序,并以其他第三方的ruby gems为基础。 特征 生成没有数据库的基于Sinatra的Web应用程序 使用PostgreSQL...
示例展示了如何使用 Puma 和 Nginx 部署一个简单的 Sinatra 应用程序。 动态内容通过 Puma 提供,而静态内容通过 Nginx 提供。 git clone https://github.com/p8952/nginx-puma-sinatra.git ~/nginx-puma-sinatra ...
Sinatra 应用程序模板 这是一个应用程序模板。 模板定义 /app.rb 应用程序入口点。 该文件定义了由 Rack 运行的 Sinatra 应用程序。 这里配置了环境,应用程序运行需要所有必要的文件和 gem。 此外,还执行初始化...
适用于Heroku部署的最轻量级Sinatra应用程序模板 关于这个程序 这是用于heroku部署的最轻量级Sinatra应用程序。 该应用程序实现: 苗条的 萨斯 CoffeeScript 您可以立即使用此模板启动应用程序! 有两个版本。 ...
**Ruby-Sinatra-SampleApp** 是一个基于Ruby编程语言,使用Sinatra框架和Sequel数据库库构建的示例应用程序。这个项目旨在提供一个简洁的起点,帮助开发者了解如何使用这些技术来创建轻量级、高效的Web应用。下面将...
在您的Sinatra应用程序中添加一个面向对象的表示逻辑层。 安装 将以下内容添加到您的Gemfile : gem 'sinatra/decorator' 然后执行: $ bundle 例子 # app.rb require 'sinatra' require 'slim' require '...
在此示例中,我们将向您展示如何在 Web 应用程序中发生错误时向人员列表发送 SMS 通知。 本地开发 该项目是使用框架构建的。 首先克隆这个存储库并cd到其中。 git clone git@github....
Respire:我姐姐网站的Sinatra应用程序 Respire是一个基于Sinatra框架构建的Web应用程序,专为个人或小企业设计,可能用于展示、分享或管理特定内容。Sinatra是Ruby编程语言中的一个轻量级、模块化的Web开发框架,...
概述在 Ruby 中运行,使用 Sinatra 和 AppleScript,remotr 是一个简单的应用程序,旨在简化演示。先决条件基调Ruby(推荐使用 bundler,但不需要)设置为了让应用程序运行,您可以通过执行以下命令来设置它: $ git...