问题标签 [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.

0 投票
1 回答
85 浏览

ruby-on-rails - 在使用 devise-token-auth 与 rails api 的低网络连接期间出现 401s

我有一个使用 devise-token-auth 的 rails api。最近我的 Wifi 非常不稳定/速度很慢,我注意到我从我的应用程序中收到了 401。我的理论是刷新的身份验证令牌要么丢失,要么被坏网络延迟。话虽如此,我很难重现错误本身。

三个主要问题:

  1. 由于新的 auth-token 丢失或延迟,不稳定的 Wifi/网络连接是否会导致 401。如果是这种情况,是否有一种无需用户重新登录即可恢复的方法。
  2. 如何重现这样的环境,所以我可以调试这个场景。
0 投票
1 回答
414 浏览

ruby-on-rails - 如何覆盖 devise_token_auth 中的关注点

我用devise_token_auth宝石。我想要覆盖resource_finder.rb对修改方法的关注provider

0 投票
1 回答
1038 浏览

ruby-on-rails - 使用 set_user_by_token 设计问题

我遇到了一个简单的问题,尽管我确实找到了它的位置,但我似乎找不到解决方法。

我要做的是使用devise_token_auth设置设计密码重置。我已经使用令牌生成器设置了电子邮件,并且电子邮件链接到'/api/auth/passwords/edit'验证令牌的端点,然后重定向到我的前端密码重置表单(如果重要,在 reactjs 中完成),当我实际提交时问题出现了表单,我正在发送令牌,我也在发送密码和确认、到期、uid 和所有其他标题。

所以这是问题所在,设计密码控制器调用之前的操作set_user_by_token,我通过一些调试发现这就是问题所在,我使用set_users_by_token的默认代码创建并覆盖模块,并通过使用 binding.pry我看到没有通过方法调用传入任何值,但是该方法被调用是因为它被撬了。

这是方法代码

由于没有满足其他条件,因此最后它击中了 else 并将资源返回为 nil。

任何帮助将不胜感激,我很确定这是问题所在,因为我已经调试了好几天,这就是它引导我的地方

0 投票
1 回答
446 浏览

devise-token-auth - 如何使用带有 devise_token_auth 的 PUT 更新帐户?

我在我的 Rails 5 API 应用程序中使用 devise_token_auth gem。为了测试所有设计令牌路线,我使用 Postman。当我尝试在路由“ https://localhost:3000/auth ”上使用 PUT 方法更新用户帐户时,我用以下内容填充请求正文:

或者

响应返回具有相同(未更新)属性"success"的用户的状态和 JSON 表示。"name"

这是否意味着 devise_token_auth 不提供此类功能并且必须覆盖User控制器和模型?

0 投票
0 回答
804 浏览

ruby-on-rails - Rails Devise_token_auth invalid_credentials: OAuth2::Error

我正在构建一个基于 restful 的 rails 5、devise_token_auth 和 Omniauth google Oauth2 的 api。

目前通过电子邮件创建的基本帐户运行良好,现在我正在尝试使用 Google 配置身份验证,但在身份验证期间我遇到了一些我无法解决的错误。

在我面临的不同错误下方:

或者

这里还配置了:devise.rb:

omn​​iauth.rb:

如果您对根本原因有任何想法,请随时更新它,

0 投票
0 回答
216 浏览

ruby-on-rails - 带有 devise_token_auth 的 Rails 设计未显示登录表单

嗨,我正在尝试将设计与 devise_token_auth 一起使用。

最初我的应用程序是仅 API 应用程序。因此,我们使用 --api 标志生成了应用程序。但是在我们需要为我们的管理功能添加 Rails 视图之后。截至目前,所有控制器都继承自ApplicationController哪一个继承自ActionController::API. 因此,我创建了一个名为的新控制器AppController并从ActinController::Base. AppController我开始从我所有新创建的控制器继承。我所有新创建的控制器都在我的admins命名空间内。

这是我的routes.rb

在这里,我有来自 API 的请求(由 devise_token_auth 处理)的路由,对于来自正常请求的路由,我添加了 devise_for :users,如::admins,如上所示。

我的admins/sessions_controller.rb

我生成了设计视图并添加到里面的admins文件夹中views

我的AppController

问题来了,每当我尝试访问任何页面时,它都应该将我重定向到登录页面。但它只显示以下错误

You need to sign in or sign up before continuing.

整个页面是空白的,并且没有显示任何登录表格。我创建了sessions/new.html.haml页面并放置在我的视图中的 admins 文件夹中。

server log

如果您需要更多信息,请告诉我

0 投票
1 回答
442 浏览

ruby-on-rails - devise_token_auth:注册后如何登录用户?

我已经成功迁移到devise_token_auth(从simple_token_authentication),但是出于用户体验的原因,我希望允许用户注册他们的帐户,立即使用他们的帐户(之前通过在注册响应中返回一个令牌来完成),然后确认他们的电子邮件解锁某些功能。如何通过这个 gem 实现这个流程?

0 投票
1 回答
501 浏览

ruby-on-rails - Rails 5.2 Auth - create_new_auth_token 后返回的令牌

我正在使用devise_token_auth并且遇到了一个奇怪的场景。

我的数据库中只有一个用户,当我在控制台中询问他的令牌时,我得到了这个:

所以现在我想要一个新的令牌,所以我执行以下命令:

这是对那个电话的回应

哪个应该是新的令牌,对吧?所以我再次检查用户的令牌:

现在,你看到问题了吗?新客户端J_Bb35u9pcBCUSLuzP8axA匹配但access-token我在创建新令牌时收到的 ( ) 与存储在数据库中的 ( )Uof0cB0KcI5RH-GFOCezDw不匹配$2a$10$trmOQQOnQRfMXGk0s8XS5ufUl9OHDnPcK7f4M4qXfGggj4gCUIc12

这是为什么?我认为创建新令牌时的响应将是同一个令牌。是什么access-token意思?它是干什么用的?

0 投票
1 回答
1070 浏览

ruby-on-rails-5 - devise_token_auth 未定义方法“create_token”问题

在我的 rails 5 应用程序中,我使用“devise_token_auth”gem 来开发基于令牌的 API 以进行身份​​验证。到目前为止,一切都运行良好,但突然间我遇到了错误,

在谷歌上找不到任何解决方案。以下是完整的错误,

0 投票
1 回答
1599 浏览

ruby-on-rails - devise_token_auth 总是返回 401 Unauthorized

我正在开发一个带有 Rails API 的 Angular 应用程序。我正在使用Devise Token Authangular-token 的 6.x 分支。我可以毫无问题地 CRUD 用户,并且可以登录,但是当我尝试访问受限制的资源(通过before_action :authenticate_user!帮助程序限制的资源)时,无论我是否登录,我都会收到错误消息。

相关控制器

一些东西:

  • 我肯定是根据angular-token-时的TokenService.UserSignedIn()回报登录true401 Unauthorized response
  • 我已经启用了 CORS。
  • 我在 rack-cors 配置中公开了以下标头['access-token', 'expiry', 'token-type', 'uid', 'client']

任何帮助将不胜感激。

来自登录的示例响应

角码

编辑

我发现问题在于angular-token未设置身份验证标头,因为我认为这是以下代码中的错误:

由于我没有apiPath定义,因此req.url.match(this.tokenService.apiPath))被评估为false,因此永远不会添加标题。