问题标签 [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 回答
615 浏览

ruby-on-rails - `client` 标头值在 devise_token_auth 中代表什么

我正在尝试使用 devise_token_auth ( https://github.com/lynndylanhurley/devise_token_auth#conceptual ) 在 Rails 中实现基于令牌的授权。

当我发布uidpassword反对方法时,它会在标题中sign_in返回access-token, client(和它本身)。uid我了解基于令牌的授权是这样工作的:

  1. 用户发布uid(id) 和passwordapi 服务器。
  2. Api 服务器验证uidpassword
  3. uid如果和password匹配,则发出 Token 并返回它。
  4. 客户端收到令牌。
  5. 客户端每当客户端想要访问身份验证所需的 api 时,客户端使用uid和 Token 来证明该客户端实际上已经通过身份验证。

我可以理解,access-token对应于上面解释中描述的 Token。这让我想到了client标头值是什么,因为根据官方 Wiki(https://github.com/lynndylanhurley/devise_token_auth#usage-tldr),devise_auth_token 库似乎不仅使用需要access-token,而且还使用client值.

问题:

  • 在 devise_token_auth 中,client标头值的用途是什么?为什么还需要它来识别用户?那不能包含在(或连接到)access-token价值中吗?
0 投票
1 回答
778 浏览

ruby-on-rails - 如何使用 devise_token_auth gem 允许特定 devise_controller 的参数?

我正在使用devise_token_authenticationgem 构建基于令牌的身份验证 rails api,然后我添加了一些额外的字段来Vendor通过不同的迁移进行建模,为了允许它们,我写了这个:

然后我添加了另一个模型Customer rails g devise_token_auth:install Customer auth

然后在 routes.rb

每次我尝试sign_up与客户联系时,都会'localhost:3000/customer/auth'收到错误消息:ActiveModel::UnknownAttributeError: unknown attribute 'tax_number' for Customer.

那么有没有办法只允许Vendor模型的额外字段并跳过“客户”?

0 投票
1 回答
453 浏览

ruby-on-rails - 设计重置密码电子邮件指向错误的控制器

我包括devise_token_auth从其他地方托管的网络应用程序登录。但我也希望能够直接登录到我的 rails 应用程序。

我的 routes.rb 看起来像这样:

为了重置密码,webapp 发送一个POST/api/auth/password. 使用上面的配置,电子邮件中重置密码的链接使用了错误的控制器(打开的那个users/password)。redirect_url 没有被应用,用户看到的是 rails 应用程序的登录表单,而不是 web 应用程序:

如果我评论该行devise_for :users,则电子邮件链接是正确的,请使用api/auth/password/edit

但是,当然,通过评论devise_for :users我不能只使用 rails 应用程序(on http://localhost:3000/users/sign_in)登录。

0 投票
1 回答
433 浏览

ruby-on-rails - 在 Rails 5 API 的规范中传递设计令牌

我有一个使用帐户和用户构建的基本 Rails API。当我删除所有帐户规格时...

但是有了这个,我很难让规格通过。

如您所见,我试图在 before do 块中将身份验证令牌与此行合并...

但这行不通。相反,我得到 json.size == 1 和 401 的 http_status 未经授权。

0 投票
0 回答
72 浏览

ruby-on-rails - 设备 token_authenticable 不能使用加密的 auth_tokens

我们最近加密了 users 表中的所有 auth_tokens。在数据库中进行比较之前,我已将authenticate_user_from_token!ApplicationController 中encrypt的参数修改为 params[:auth_token]。它获取用户记录并sign_in user, store: false在表中创建一个条目sessions

但是,它实际上并没有让用户登录。它将我带到登录页面。是在其他地方Devise使用我需要加密它还是我错过了其他东西?auth_token

0 投票
1 回答
338 浏览

ruby-on-rails - 带有 devise_token_auth 的 Rails Api 给出“ActiveModel::ForbiddenAttributesError:

我想用 facebook 登录构建 RailsAPI,所以我选择了devise_token_auth. 我按照说明运行rails g devise_token_auth:install User auth,我的路线看起来像

路线.rb

所以它是来自生成器的东西。我在 facebook 为开发人员注册了我的应用程序,将 facebook-key 和 facebook-secret 存储在 env 文件中。当我第一次点击localhost:3000/auth/facebook它时,它将我重定向到 facebook auth 弹出窗口,我点击了按钮,然后错误出现了。

在此处输入图像描述

我应该用自己的设计覆盖控制器吗?怎么做?或者还有其他解决方案吗?

我想提一下这是我第一次使用 Rails 构建 API。

0 投票
1 回答
144 浏览

ruby-on-rails - 用户注册后立即登录用户

我正在使用设计令牌身份验证(devise_token_auth)进行基于令牌的用户登录和注册,因为它仅用于开发 api。我需要在用户注册他/她的帐户后立即让用户登录。我怎么能这样做?我已经尝试过但无法成功,所以我在这里希望得到帮助。

我在下面的代码中尝试了这个

在 Users::RegistrationController 但成功注册后根本不执行。

0 投票
0 回答
914 浏览

ruby-on-rails - 设计令牌身份验证重置密码给出 401 未经授权的错误

我正在构建devise token auth gem使用令牌进行身份验证的 Rails API。每当我尝试通过单击忘记密码来重置密码时,表单似乎会提供电子邮件,当给出电子邮件时,会向用户提供重置链接,并且他们在此前端页面上提交表单,该页面会发送API: PUT /auth/password带有密码的请求和password_confirmation 参数。之后,我得到一个错误说Completed 401 Unauthorized这是我的代码

我在终端中遇到的错误:

0 投票
1 回答
1011 浏览

ruby-on-rails - 如何使用 redux-token-auth 设置 devise_token_auth 和 omniauth?

我将devise_token_auth与 Rails 5 API 和使用redux-token-auth的单独 React/Redux 应用程序一起使用,试图允许用户通过 Twitter OAuth 登录(使用omniauth-twitter)。

我已devise_token_auth安装/api/v1如下:

1 │ Rails.application.routes.draw do 2 │ namespace :api do 3 │ scope :v1 do 4 │ mount_devise_token_auth_for 'User', at: 'auth', controllers: { omniauth_callbacks: 'omniauth_callbacks' } 5 │ end 6 │ end 7 │ end

这是现在发生的事情:

  1. 在 React 前端,用户单击链接以使用 Twitter 登录
  2. /api/v1/auth/twitter用户在同一窗口中被重定向到(在后端 Rails 应用程序中处理)
  3. 用户被重定向到 twitter.com 以登录和授权应用程序
  4. 用户被重定向到回调 URL,/api/v1/auth/twitter/callback由 Rails 后端处理
  5. Oauth 成功,用户信息被添加到users表中
  6. 然后什么也没有发生。显示一个空白页面,其 URL 仍显示带有路径的后端 Rails 应用程序 URL /api/v1/auth/twitter/callback

我需要用户返回 React 前端应用程序并使用刚刚创建的新用户的令牌进行身份验证。

我究竟做错了什么?我最初重定向到处理 oauth 流的后端 API 是错误的吗?我在 devise_token_auth 问题中看到了一些关于在新窗口中执行此操作的评论,但除了使用 jQuery 库jToker(我不想这样做)之外,我没有看到任何有关如何执行此操作的文档。

设置和配置redux-token-auth以及devise_token_auth使用时的正确方法是什么omniauth

0 投票
1 回答
153 浏览

ruby-on-rails - 覆盖 SessionsController 以根据用户属性拒绝访问

我有一个 rails 4 项目,我正在使用 DeviseTokenAuth。一切正常,但我想拒绝访问具有特定状态的用户。所以基本上

所以这就是我到目前为止所做的

但是当我这样做时,我得到:

任何想法 ?

谢谢