问题标签 [http-token-authentication]
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 - 如何处理仅由其他第三方应用程序访问的 Web 应用程序的 HTTP 身份验证?
我正在构建一个同时具有 API 和 UI 的 Rails 应用程序,我已经为 API 实现了 HTTP 令牌身份验证(标头),并希望尽可能继续为 Web 应用程序使用相同的方法。
我正在保存用户令牌session[:token]
并使用authenticate_or_request_with_http_token
身份验证方法。application_controller 具有 before 过滤器,并且所有其他控制器都被继承,因此 API 中的每个端点和 Web 应用程序中的每个页面都需要 HTTP 标头令牌。
API 工作正常,因为合作伙伴应用程序每次都发送令牌以访问端点,但在 Web 应用程序的情况下,我们第一次获得令牌(当用户从合作伙伴应用程序重定向时)并且控制权被转移到我们的应用程序。然后我们需要一种方法来为 rails 应用程序中的每个路由/页面发送 HTTP 标头令牌。请建议我一种方法来做到这一点,或者如果这看起来很复杂,请建议一种完全不同的方法。
编辑:
angularjs - 使用 Angular 进行基于令牌的身份验证
我想通过 api 对用户进行身份验证,当用户名和密码正确时,它会返回一个令牌并使用 ngStorage 存储在本地存储中,但我阅读了一些文章,认为在 localStorage 上保存令牌并不安全,他们参考了将其存储到 cookies Http。如何将令牌存储在 cookie Http 上,它是否安全,或者是否有更好的方法来处理令牌身份验证
android - 如何使用 devise_token_auth 访问令牌启动与 HTML 的用户会话?
我有一个使用 devise 和 devise_token_auth gem 的 rails 4 应用程序。我希望我的 rails 应用程序正常使用设计来处理 html 请求,并使用 devise_token_auth 来检索访问令牌。以上所有工作正常。
现在,从我的 REST 客户端,我想使用 access_token 标头来检索 html 根页面。
在我的 application_controller 中,如果我添加以下行:
带有访问令牌标头的 RESTClient 对主页的请求工作正常,并将用户重定向到登录页面。但是,当我尝试通过浏览器中的设计登录和注册时,无论我在哪里使用 user_signed_in,都会出现错误?和其他设计方法。
如果我从 application_controller 中删除上述行,则所有具有常规登录和注册的浏览器调用都可以正常工作(带有相关重定向),但我无法通过设置 access_token 标头从 REST 客户端获取主页。
这是根控制器代码:
home_controller.rb
以下是请求和响应:
1:应用程序控制器中存在 SetUserByToken 行
1.1 来自 RESTClient:
1.2 来自网页
2:在 application_controller 中使用 SetUserByToken 行未设置
2.1 来自 RESTClient:
2.2 从网页
如何让网站在常规浏览器和 REST 客户端中都能正常工作?
实际目标是拥有一个 android 客户端应用程序(而不是 REST 客户端,一旦解决此问题),用户通过输入电子邮件和密码从本机代码登录,如果成功返回访问令牌,则切换到显示 WebView 的活动,该 WebView 加载与用户登录的会话。在 WebView 中,用户保持登录状态并可以浏览所有页面。如果用户从本机客户端注销,则访问令牌将被丢弃,并且用户也会从服务器会话中注销。
ruby-on-rails - 如何仅授权我自己的移动应用程序调用我的 rails 4 api?
我有一个使用 devise_token_auth 公开 api 的网络应用程序。我构建了多个移动应用程序,它们通过 https 与这个网络应用程序的不同方面进行对话。他们使用 devise_token_auth 获取访问令牌,然后在以后的请求中使用访问令牌。
我想避免其他人创建自己的移动应用程序来与我的网络后端对话的情况。
当从移动客户端进行呼叫时,它使用已经在我的服务器上注册的用户和密码来获取访问令牌。如何阻止其他人创建自己的移动客户端?
选项1:我可以创建一个秘密的api令牌,并在客户端和服务器上使用它,其中移动客户端传入api令牌,服务器只接受包含api令牌的请求。选项 1 的问题:任何看到在线请求的人现在都可以使用 api 令牌创建类似的请求,并使用 api 令牌进行相同的调用。
选项 2:我将我的 Web 服务器设置为 oauth 服务器,我的应用程序使用 oauth 仅为我自己的 api 用户授权客户端请求,并拒绝其他请求。选项 2 的问题:我对 oauth 了解得不够多,不知道它是否以这种方式工作,以及除 devise_token_auth 之外如何实现这一点 - 这实际上意味着在服务器上检查了两个凭据 - api 用户的 oauth 验证,和实际用户的 devise_token_auth 验证。
我确实看过这个和这个相关的问题,但它们并不完全是我的场景。这些线程中的建议似乎是a)https +基本身份验证就足够了,不需要oauth,并且b)阻止未经授权的IP地址(问题:我不知道如何检测哪个IP地址是我的移动应用程序用户',这是别人的)。c) 这些线程的另一个见解是,如果我在我的移动应用程序中存储了一些私有密钥以用于识别应用程序,它们很可能会被暴露,因为移动应用程序(至少在 android 上)是完全可逆向工程的。
关于如何最好地设计/实现它的任何建议?仅https +基本身份验证就足够了吗?
我很乐意分享任何代码(因为 SO 通常期望问题中有代码) - 但老实说,不知道在这里分享什么代码。
angularjs - User.Identity.GetUserId() 和 RequestContext.Principal.Identity.GetUserId() 在 WEB API 控制器中返回 NULL。使用基于令牌的身份验证
我使用令牌来保护我的 Web API 网站,并从 AngularJS 客户端应用程序中使用此 API。
有了这个,我可以使用基于令牌的身份验证登录。我的问题是我无法获取UserId
Web API 控制器。
User.Identity.GetUserId()
和都RequestContext.Principal.Identity.GetUserId()
回来了null
。
如何UserId
进入ApiController
?
signalr - Context.User.Identity.GetUserId() 和 Context.User.Identity.Name 在 signalR 的集线器中返回 null
Context.User.Identity.GetUserId() 和 Context.User.Identity.Name 在 SignalR 中的 AppHub.cs (Hub) 中返回 null。在此,我在身份框架中使用基于令牌的身份验证。
ruby-on-rails - devise_token_auth & Rails 5 - IndexError:字符串不匹配
devise_token_auth
我正在尝试使用version登录现有用户0.1.38
,但我IndexError: string not matched
在库的sessions_controller
.
相关代码来自sessions_controller
:
我已添加devise_token_auth
到现有项目中,因此很可能在tokens
列中创建了错误数据。我已经尝试了各种将token
json 默认设置为现有用户的方法,包括模仿sessions_controller
.
我在issue #101中看到过对此的提及,但没有具体的解决方案。知道我哪里出错了吗?
python - 检查是否已在 Django Restframework 中为用户分配了令牌
我正在使用 Django Restframework 为站点设置令牌身份验证,并且需要能够让用户下载他们的令牌,但问题是他们只能下载一次令牌(类似于 Amazon AWS 模型)。
换句话说; 是否有本地方法来检查用户是否已在 restframework 中分配了令牌?
c# - Web API 中基于令牌的身份验证,无需任何用户界面
我正在 ASP.Net Web API 中开发一个 REST API。我的 API 只能通过非基于浏览器的客户端访问。我需要为我的 API 实现安全性,所以我决定使用基于令牌的身份验证。我对基于令牌的身份验证有相当了解,并阅读了一些教程,但它们都有一些用于登录的用户界面。我不需要任何 UI 来登录,因为登录详细信息将由客户端通过 HTTP POST 传递,HTTP POST 将从我们的数据库获得授权。如何在我的 API 中实现基于令牌的身份验证?请注意 - 我的 API 将被高频访问,因此我还必须注意性能。如果我能更好地解释它,请告诉我。
authentication - WebAPI 2 身份验证混乱
在做了一些研究之后,我了解到有很多方法可以在 WebAPI 2 中实现身份验证和授权......我正在专门研究基于令牌的身份验证
- 实现自定义 OAuth 提供程序并将其注入 OWING 管道
- 实现一个“身份验证”控制器,它将生成所需的令牌,将其发送到数据库并使用自定义授权属性(可以从#1 了解这种方式的优点或缺点),请参见此处http://www.asp.net/web -api/overview/security/authentication-filters
- 实现令牌身份验证的完整自定义身份验证框架,如下所述http://www.codeproject.com/Articles/630986/Cross-Platform-Authentication-With-ASP-NET-Web-API
去这里的最佳方式是什么?我很困扰 ...