ruby - Sinatra REST API 应用程序的身份验证

标签 ruby authentication oauth sinatra warden

我正在使用 Sinatra 构建一个 API(在客户端使用 Angular 并希望其他人能够访问 API)并且它也是一个 OAuth 提供者。我想知道采取什么最佳途径(利用现有的 gem 或从 Warden 推出自己的解决方案等)。

在使用 Rails 之前使用过 devise 和 doorkeeper 进行身份验证和 oauth,想知道 Sinatra 的最佳解决方案是什么。

理想情况下,我不想要 View 或能够扩展/修改现有解决方案的操作,因为我纯粹将其作为 API 与之交互。

最佳答案

我最近使用 S/O 的以下答案做了同样的事情

What is a very simple authentication scheme for Sinatra/Rack

它暗示了一个用户模型,但我没有使用它,而是在我的配置文件中设置了一个用户和管理员密码。然后我有一个只输入密码的登录表单。当用户输入该密码时,我根据设置中的密码对其进行了检查,并根据匹配的任何一个将 session ['user'] 设置为 :admin 或 :user (如果没有则为 nil )。然后在我的每条路线上,我相应地调用了 auth::user 或 auth::admin。

关于ruby - Sinatra REST API 应用程序的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315272/

相关文章:

ruby - 如何为 Sinatra 应用程序设置范围重定向

mysql - 在 Windows 上为 ruby​​ 2.0.0 安装 mysql2 gem 时出错

authentication - 是 CQRS 中的登录/注册命令或查询

authentication - Play Framework 用户认证/成员(member)

javascript - 使用 Angular 2 的 Oauth 2 弹出窗口

http - curl 命令的等效 http 请求

ruby-on-rails - Rails 3.1界面设计——级联下拉、表单输入

ruby-on-rails - 将一个巨大的字符串作为参数传递给 Sidekiq worker 是个好主意吗?

javascript - 使用 javascript 和 Node 的 Windows AD 单点登录

authentication - oauth 隐式授权与授权代码授权?