问题标签 [warden]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 使用设计动态设置用户时区
我构建了一个 Rails 应用程序,可以帮助父母跟踪婴儿的睡眠情况。为了让它正常工作,我必须支持不同的时区。为了避免时区惹恼用户,我创建了一个小 javascript,它在登录表单中添加了一个隐藏字段,包括时区偏移量。这是代码
使用该字段中的数据,我将 Time.zone 设置为与该偏移量对应的任何城市。像这样的东西会生成时区
最后,我在 ApplicationController 中设置了时区。
所有这些都依赖于我自己编写的登录功能。但是,我知道我以后需要使用更好的用户管理系统,因为我自己的代码既不是很好也不是特别安全(我首先专注于其他功能)。
现在,我已经安装了 devise,它可以很好地登录和注销,网站的大多数其他功能也可以正常工作。但我不知道如何通过设计作为我的用户管理系统来处理时区支持。
一个想法是覆盖 Devise 中的 SessionsController,添加对该隐藏时区字段的检查并将其值添加到 user_session。但我对此感到担心,这感觉是个坏主意。
有没有更好的方法来添加此功能,而不强制用户在注册期间添加时区信息?
谢谢!
ruby-on-rails - 配置 Warden 以在 RSpec 控制器规范中使用
我能够使用 Devise 的sign_in
方法在我的控制器规格中登录用户。但是现在我要从我的应用程序中删除 Devise,我不太确定如何仅使用 Warden 来获得类似的功能。
我应该如何设置spec/spec_helper.rb
和相关spec/support/*.rb
文件以使 Warden 在控制器规格内充分运行?
我尝试spec/support/warden.rb
使用以下内容设置文件:
然后我有before
与此类似的调用来验证user
工厂:
但这是我一直看到的错误:
此错误可追溯到我authenticate_user!
在控制器中的方法:
我将不胜感激任何人都可以提供的任何指导。
ruby-on-rails - Heroku,Rails:WildCard SSL 导致 env['warden'] 返回 nil
在我的 Rails 应用程序中。我正在使用设计。用户会从“ja.myapp.com”、“www.myapp.com”等几个子域进入首页。我只在促销页面内使用几个子域,所以当他们进入“登录”页面时,所有他们将重定向到“www”子域页面。
当用户登录时,如果用户的profile_type是“学生”,用户将重定向到“学生之家”。如果是“教师”,“教师之家”。
当我使用“POW”进行测试时一切正常,但是当我将它上传到生产服务器时。用户登录后,他们都将重定向到 TOP 页面。
我回滚应用程序并尝试再次登录,但同样的事情发生了这发生在我将 heroku 证书从“单域 SSL”上传到“通配符子域 SSL”之后。
在我将 SSL 更改为单域之一后,回滚站点内不会再发生这种情况。
我想这是因为“通配符子域 SSL”和设计会话控制器而发生的,但对此不太确定。
有谁知道解决这个问题?
下面是代码。
路线.rb
配置/初始化程序/session_store.rb
应用程序控制器
locale_settings_controller.rb
生产.rb
配置/初始化程序/rack_rewrite.rb
ruby-on-rails - Rails with Devise - 在'remote => true'提交后使用current_user
我有一个三部分的用户注册,它使用两个单独的模型:用户和客户信息。我远程提交了一个用户注册,它进入表单的下一部分。我希望能够current_user
在提交客户信息行时使用该变量。当我在没有遥控器的情况下进行测试时,以下代码有效,但当我使用遥控器进行测试时,它甚至根本不创建行。我可以使用另一个变量来代替这个变量吗?或者有没有更好的方法来实现这一点?
ruby-on-rails - 为什么设计会话不持久?
我们的 Rails 应用程序中的一些用户无法登录/注册,因为会话无法保持。这完全是随机的,我无法重现它。我应该监控什么来缩小问题的范围吗?是否有任何浏览器配置需要我询问用户?
应用程序正在运行 rails-3.2.8 和 devise-2.1.2
我们将会话存储到 memcached 中,允许子域:
Authentication::Application.config.session_store ActionDispatch::Session::CacheStore, :namespace => '_sessions', :key => '_cb_session_m', :expire_after => 2.weeks, :domain => 'my_domain.com'
ruby-on-rails - 带有 LDAP 身份验证的 ETIMEDOUT 和 Devise (rails)
Devise::SessionsController#create 中的 Errno::ETIMEDOUT
我正在尝试创建一个使用带有LDAP Authentication的Devise的 rails 应用程序。
不幸的是,我认为我的 LDAP 设置不正确,但是除了发生 TIMEOUT 之外,我不知道如何打印出更详细的错误信息。
这是我的 ldap 配置:
我知道我们没有使用 SSL,因为我已经从一个类似的 PHP 应用程序移植了这个配置,但是那个 PHP 应用程序没有属性字段。也许这是我不明白的?
我发现了一些 问题,这些问题引用了如何更改错误以及它与网络连接的关系,但我找不到我的资源来了解 Net::LDAP 库以及此连接在哪里失败,我错过了什么,以及我不明白的地方。我已经验证了网络连接,还验证了使用 Windows 客户端匿名访问的 LDAP 权限。
这是输出、跟踪和转储:
谢谢!
api - 如何在多个(子)域之间共享身份验证?
未经身份验证的用户到达 www.example.com。
成功登录后,用户被重定向到:https ://dashboard.example.com
返回时:www.example.com - 会话被保留,用户现在可以从那里注销
Heroku 显示了一个示例,它在应用程序之间共享 cookie,如屏幕截图所示。
此设置如何工作?如何使用 Rack 应用程序模仿此设置?
rspec2 - 当使用 Grape 作为 Rack 应用程序时,Warden 在 rspec 测试中不可用
在我的 RSpec 测试中,让 Warden 的哈希出现在请求哈希中时遇到问题。当我在开发模式下运行我的应用程序时,Warden 密钥就在那里,但在测试环境中,一切都是零。我在下面包含了我的基本 rspec 配置。如果有人对我出错的地方有任何想法,我真的很想知道,我几乎整天都在摆弄这个。
在开发模式下运行时找到Warden,但在测试模式下运行时env['warden']
总是nil
这是我在开发模式下检查请求对象内的warden hash时得到的示例:
这是我在测试期间检查请求对象内的warden hash时得到的结果:
规范帮助文件
Example Spec wherewarden 应该抛出 403 响应,因为用户尚未通过身份验证。
示例错误:
检查监狱长钥匙的相关葡萄助手方法
ruby-on-rails - 错误凭据时设计守望者 401 未经授权
我有一个非常标准的 Devise 登录程序:
看法:
resource_name, :url => session_path(resource_name)) 做 |f| %>我刚刚创建了一个会话控制器来降低电子邮件的大小写:
具有良好凭据的登录会很好。
如果凭据错误,它会使用以下日志重定向到登录页面:
显然 401 被 Warden 丢弃了,但我不知道为什么。用户被正确重定向回登录页面,但没有显示错误消息(这是正常的,因为它们被重定向清除了)
我究竟做错了什么?
谢谢!
编辑1:
现在,我找到了一个快速破解方法。我在 SessionsController#new 中添加了这个
不是很优雅,但至少,我有一些东西。
ruby - 替换 Padrino-Warden 中的默认身份验证策略
我正在努力替换 Padrino-Warden gem 的默认 :password 策略。我认为我需要为warden获取管理器实例,以便我可以设置默认策略,但我不确定如何在 app.rb 文件中执行此操作
现在 app.rb 看起来像这样
哪个不起作用。守望者环境还是这个样子
如果我在 config.ru 中配置warden,它将为warden 设置正确的环境,但是我怀疑Padrino 提供的会话中间件不能与Warden 一起很好地工作。