问题标签 [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 - `client` 标头值在 devise_token_auth 中代表什么
我正在尝试使用 devise_token_auth ( https://github.com/lynndylanhurley/devise_token_auth#conceptual ) 在 Rails 中实现基于令牌的授权。
当我发布uid
和password
反对方法时,它会在标题中sign_in
返回access-token
, client
(和它本身)。uid
我了解基于令牌的授权是这样工作的:
- 用户发布
uid
(id) 和password
api 服务器。 - Api 服务器验证
uid
和password
uid
如果和password
匹配,则发出 Token 并返回它。- 客户端收到令牌。
- 客户端每当客户端想要访问身份验证所需的 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
价值中吗?
ruby-on-rails - 如何使用 devise_token_auth gem 允许特定 devise_controller 的参数?
我正在使用devise_token_authentication
gem 构建基于令牌的身份验证 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
模型的额外字段并跳过“客户”?
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
)登录。
ruby-on-rails - 在 Rails 5 API 的规范中传递设计令牌
我有一个使用帐户和用户构建的基本 Rails API。当我删除所有帐户规格时...
但是有了这个,我很难让规格通过。
如您所见,我试图在 before do 块中将身份验证令牌与此行合并...
但这行不通。相反,我得到 json.size == 1 和 401 的 http_status 未经授权。
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
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。
ruby-on-rails - 用户注册后立即登录用户
我正在使用设计令牌身份验证(devise_token_auth)进行基于令牌的用户登录和注册,因为它仅用于开发 api。我需要在用户注册他/她的帐户后立即让用户登录。我怎么能这样做?我已经尝试过但无法成功,所以我在这里希望得到帮助。
我在下面的代码中尝试了这个
在 Users::RegistrationController 但成功注册后根本不执行。
ruby-on-rails - 设计令牌身份验证重置密码给出 401 未经授权的错误
我正在构建devise token auth gem
使用令牌进行身份验证的 Rails API。每当我尝试通过单击忘记密码来重置密码时,表单似乎会提供电子邮件,当给出电子邮件时,会向用户提供重置链接,并且他们在此前端页面上提交表单,该页面会发送API: PUT /auth/password
带有密码的请求和password_confirmation 参数。之后,我得到一个错误说Completed 401 Unauthorized
。
这是我的代码
我在终端中遇到的错误:
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
这是现在发生的事情:
- 在 React 前端,用户单击链接以使用 Twitter 登录
/api/v1/auth/twitter
用户在同一窗口中被重定向到(在后端 Rails 应用程序中处理)- 用户被重定向到 twitter.com 以登录和授权应用程序
- 用户被重定向到回调 URL,
/api/v1/auth/twitter/callback
由 Rails 后端处理 - Oauth 成功,用户信息被添加到
users
表中 - 然后什么也没有发生。显示一个空白页面,其 URL 仍显示带有路径的后端 Rails 应用程序 URL
/api/v1/auth/twitter/callback
我需要用户返回 React 前端应用程序并使用刚刚创建的新用户的令牌进行身份验证。
我究竟做错了什么?我最初重定向到处理 oauth 流的后端 API 是错误的吗?我在 devise_token_auth 问题中看到了一些关于在新窗口中执行此操作的评论,但除了使用 jQuery 库jToker(我不想这样做)之外,我没有看到任何有关如何执行此操作的文档。
设置和配置redux-token-auth
以及devise_token_auth
使用时的正确方法是什么omniauth
?
ruby-on-rails - 覆盖 SessionsController 以根据用户属性拒绝访问
我有一个 rails 4 项目,我正在使用 DeviseTokenAuth。一切正常,但我想拒绝访问具有特定状态的用户。所以基本上
所以这就是我到目前为止所做的
但是当我这样做时,我得到:
任何想法 ?
谢谢