问题标签 [devise-token-auth]
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 - 为什么我无法使用 devise_token_auth 和 curl 退出?
我正在使用带有 devise_token_auth 的 rails-api 进行身份验证。我可以通过以下方式毫无问题地登录:
但是,注销失败并显示 404 和错误“用户未找到或未登录”。通过:
我已尝试使用参数和标头值的多种组合来更改此命令,例如:
无济于事。类似构造的 RSpec 测试也失败并出现相同的响应和错误,并且日志表明请求是通过 DeviseTokenAuth::SessionsController#destroy 作为 JSON 处理的。
当然,我实际上并没有使用 curl 进行身份验证。只是在编写相关代码之前验证请求结构。
angularjs - ng-token-auth,离子,devise_token_auth;令牌在 xhr 请求中随机丢失
我继承了一个 Ionic 应用程序,它使用ng-token-auth
+devise_token_auth
来处理身份验证和前后之间的会话。
发生的事情很奇怪。有时(特别是在连接速度较慢的情况下)请求(或响应)会丢失,之后我只会收到401
http 错误。
我知道每次我发送请求时令牌都会过期,但是当xhr
请求被取消时(我想是由服务器或浏览器,我不知道)令牌已过期而没有被新生成的替换由devise_token_auth
宝石。
我知道 Rails,但我不熟悉 Angular,Ionic 也不熟悉,我也不知道该去哪里找。
在阅读了很多 SO 答案后,似乎没有人遇到我的问题(在本地和暂存/生产中发生),我检查了以下内容
storage
设置为localStorage
。config.batch_request_buffer_throttle = 20.seconds
- 取消的请求之间没有模式,有时我为用户名执行获取,有时是帖子或评论。
- 不是 CORS 问题,因为它总是会发生或永远不会发生。(此外,我正在使用代理,如ionic blog中所述)
- 也许它可能与临时标题chrome 错误有关。但是,我怎么能确定呢?
令我困惑的是,它只是有时而不是总是发生。(并且后端没有错误)
我在 devise_token_auth 文档中找到的唯一解决方法是更改config.change_headers_on_each_request
为false
避免以这种方式重新生成令牌。
但我不喜欢这种解决方案,因为我认为它以不安全的方式隐藏了真正的问题,而不是解决令牌丢失问题。有什么建议吗?
ruby-on-rails - 具有多个模型和身份验证标头的 devise_token_auth
这是我的问题,我覆盖了用户模型的控制器:
这工作很好,没有问题。但是,当我使用相同的控制器添加新模型时:
他们管理模型的响应标头没有身份验证密钥。响应正常(200),但不返回 auth 标头。但是,如果删除 Admin 模型的控制器部分(覆盖),则响应将返回身份验证密钥。顺便说一句,覆盖只会改变控制器的渲染方法。任何可以帮助找到解决这个问题的方法?
ruby-on-rails - devise_token_auth 和使用 Facebook 登录的问题?
我正在同时使用 devise 和 devise_token_auth。我有一个 Ionic 2 应用程序,我正在尝试通过 Facebook 登录。现在,电子邮件/密码身份验证工作正常。这是我的一些代码。
在我的 Ionic 2 应用程序中如下
我试图修改和弄乱几个配置设置,但没有运气。当我检查我的服务器日志时,我一直看到这一点。它不会创建 Facebook 用户或任何东西。
编辑
还是想不通这个。我确实知道,当我尝试通过我的 Ionic 应用程序通过 Facebook 登录时,我的 Heroku 日志显示 Omniauth 只是在INFO -- omniauth: (facebook) Request phase initiated.
. 它永远不会到达或尝试点击回调,因为否则它会说INFO -- omniauth: (facebook) Callback phase initiated.
,它从来没有说过。话虽如此,如果我通过我的 Rails 站点手动执行此过程,则此过程有效,并且 Facebook 用户会得到保存。有什么想法为什么没有通过应用程序触发回调?我迷路了。
编辑
在这一点上,我什至不确定它是否正确实现了 Ionic 2 和 devise_token_auth Facebook omniauth 登录。可能是离子方面的问题吗?就像我说的,通过浏览器它似乎可以工作。我从字面上将/api/auth/facebook?.....
下面的代码放在我的日志中并将其粘贴到浏览器中,然后它会插入用户。
如何让它与 Ionic 2 应用程序一起工作?似乎一切都通过浏览器工作,但是当我尝试通过 Ionic 继续 Facebook 登录时失败。这是我的 Ionic 2 登录代码:
还有我来自 Heroku 的日志:
通过应用程序,它似乎INFO -- omniauth: (facebook) Request phase initiated.
每次都死掉。它永远不会进行回调。
ruby-on-rails - 无法将 devise_token_auth 与 active_admin 一起使用
我正在尝试将 devise_token_auth 与 active_admin 一起使用。运行时rails g active_admin:install User
出现以下错误。
错误
usr/local/lib/ruby/gems/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/routing/route_set.rb:578:in
add_route': Invalid route name, already in use: 'new_user_session' You may have defined two routes with the same name using the
:as` 选项,或者您可能会覆盖已定义的路由具有相同命名的资源。
路线.rb
ruby-on-rails - Rails 5 API + Vue.js 前端:使用 devise_invitable 邀请用户的表单
我正在用 Vue.js 编写邀请表。邀请应该 POST 到 Rails 5 API。我正在使用devise_invitable
邀请逻辑和电子邮件发送。但是,我在拦截该create
方法时遇到问题,因为我将向多个用户发送邀请,所以我想为User.invite!
参数中的每个用户执行一个。
我的邀请.vue文件,其中包含要发布的表单:
我的用户/invitations_controller.rb
我的路线.rb
我可以看到存在以下路线:
我在这里看到的问题是我希望路线看起来像这样:
此行为可能是由devise_token_auth
gem 引起的,我不确定如何纠正。
同样,当我提交此表单时,我希望能够拦截该create
方法,然后调用User.invite!
表单中列出的所有用户。我尝试在方法中添加byebug
or ,但代码似乎没有执行,这意味着它被绕过了。binding.pry
create
我看到的错误信息是:
我不应该将表单数据传递给devise_invitable
create 方法吗?任何帮助深表感谢。
提前致谢!
ruby-on-rails - rails api devise_token_auth 我如何在操作之前拥有多个用户
我对rails api 中的devise_token_auth有疑问。我需要三种不同类型的用户,每个用户都可以查看/编辑不同的东西。
但我不知道如何在每个用户的控制器中执行操作。例如,假设我有带有CRUD操作的“服务”控制器。
- 我需要您是查看索引的三种类型的用户之一。如果您不是其中一种用户,您将无能为力。
- 管理员可以全部 CRUD。
- 其他两个用户只能 CR(create-read)。
你好吗?
ruby-on-rails - devise 与 devise_token_auth:如何处理 Web 应用程序和 API 的身份验证
我正在编写一个主要通过 API 访问的应用程序,但也将具有通过 Web 应用程序进行编辑的视图。
我想在两个平台上创建一个具有身份验证和授权的用户模型。
我无法理解 devise 和 devise_token_auth 库之间的关系,除了前者推荐用于大多数 Rails 应用程序,后者非常适合仅 API 身份验证。
就我而言,使用什么合适的库,或者我应该同时使用两者?我应该通过设计生成用户模型,然后将令牌身份验证添加到其中吗?两个系统是否使用不同的身份验证方案?我只是想了解为什么 devise_token_auth 存在于设计之外。
我对基于令牌的身份验证增加的复杂性也有点困惑。简单地通过设计来注册和管理用户,为他们生成一个 API 密钥,然后让他们用它签署他们的 API 请求会有什么问题。为什么 API 中需要基于令牌的身份验证?
ruby-on-rails - ActiveAdmin with devise
I have a project using devise_token_auth for authentication. I have installed Active Admin following this.
When I try to access localhost:3000/admin
I get You need to sign in or sign up before continuing.
However, when I comment config.authentication_method = :authenticate_admin_user!
in config/initializers/active_admin.rb
, localhost:3000/admin
opens the dashboard page.
My question is why am I not getting the login page for active admin?
ruby-on-rails - 使用 devise-token-auth 实现 google 登录服务器端流程
我找不到任何有关使用 devise-token-auth实现https://developers.google.com/identity/sign-in/web/server-side-flow的文档。我只有 Rails 5 API 应用程序。如果没有解决方法是什么?谢谢。