问题标签 [bearer-token]

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 回答
994 浏览

angularjs - AngularJS 和从 HTTP 请求获取授权访问令牌

在 AngularJS 控制器中,我需要访问随 HTTP GET 请求发送到此特定视图(以及控制器)的 OAuth 2.0 访问令牌。我想在调用其他 API 时重用此访问令牌,作为 Authorization 标头(Authorization: Bearer)的一部分。

有人可以告诉我如何访问控制器内 GET 请求标头中的数据吗?

任何提示都非常感谢。谢谢,多米尼克

0 投票
1 回答
182 浏览

asp.net-web-api - 如何在返回之前查看 Web API 不记名令牌?

我有自己的 OAuthAuthorizationServerProvider,但在生成的不记名令牌生成后,似乎没有地方可以查看生成的不记名令牌。

有没有办法在它被退回之前抓住要退回的令牌?(黑客与否)

这是我的设置:

0 投票
1 回答
390 浏览

asp.net - 带有不记名令牌和更改角色的 ASP.net OWIN OAuth 中间件

我正在使用标准的 ASP.net OWIN OAuth 中间件系统使用 Bearer 令牌对本地用户进行身份验证。我正在考虑将角色作为声明嵌入到令牌中,但想知道如何更改用户角色,例如在不注销的情况下取消管理员权限。有任何想法吗?

0 投票
2 回答
7524 浏览

c# - 使用外部 Web API 提供的 OAuth Bearer Token 进行授权

我发布这个是希望收到一些反馈/建议和关于我过去几天一直在努力的事情的信息。首先,我将简要介绍一下该项目。

解决方案中有 2 个应用程序:

  1. WebAPI 资源和授权服务器- 使用 OWIN(托管在 IIS 中)和 ASP.NET 身份在正确登录时发出身份验证令牌,然后允许对各种控制器的请求。

  2. MVC 客户端应用程序- 目前还没有授权(直到我弄清楚),但会调用 WebAPI 资源服务器以获取所有数据。这些调用只会通过客户端应用程序中控制器的操作进行,没有客户端 AJAX 调用。

客户端应用程序没有自己的数据源。所有信息都存储在 WebAPI 服务可以访问的数据库中,因此本质上,如果它们提供正确的凭据并且客户端应用程序接收到不记名令牌,我需要为应用程序提供一种将它们视为授权的方式。

  • 处理这个问题的最佳方法是什么?
  • 是否可以在客户端配置 OWIN 以使用服务器的 OAuth 设置?我是不是找错了树,我只需要使用 HTTPClients 吗?
  • 我可以反序列化承载令牌并将其存储在会话中,然后编写我自己的授权提供程序以在客户端检查这些吗?

我最初担心的是我在滥用不记名令牌并试图将它们拼凑成一个不理想的解决方案。到目前为止,我发现的所有外部授权示例通常都涉及调用由 Google/Facebook/Twitter 托管的提供商来检查用户是他们所说的身份,然后继续在他们的系统中创建用户记录。我的应用程序无法做到这一点。

关于安全性,我计划引入过滤器,通过提供标识符和秘密以及 IP 验证来验证请求是否来自客户端应用程序。

我意识到这可能有点开放,但我会很感激任何建议。该项目的范围是 Web 服务是唯一可以访问数据库的东西。MVC 客户端应用程序将托管在不同的服务器上,并且该服务将只接受来自所述客户端应用程序的请求。

0 投票
3 回答
6792 浏览

php - 授权标头未通过 Codeception API 测试

我正在尝试使用 Codeception 测试我的 Laravel 4 REST API,但是当我尝试通过我的 Authorization 标头(使用 REST 模块的 $I->amBearerAuthenticated() 函数)发送时,它并没有通过最终请求。

据我所见,Symfony2 BrowserKit 模块修改了任何添加到 HTTP_XXX_XXX 格式的标头,因此发送的标头似乎是 HTTP_AUTHORIZATION - 但是,当我在我的应用程序中输出接收到的标头时,授权和 HTTP_AUTHORIZATION 都不存在。

如果有帮助,这是我的 Codeception 测试:

根据 BrowserKit 发送的标头($this->client->getInternalRequest()->getServer()在 REST 模块中的输出):

根据 PHP 接收的标头:

令牌被正确接收,但我的 API(正确)在 GET 请求上返回 401,因为它没有收到令牌。

任何帮助将不胜感激!

0 投票
1 回答
40 浏览

email - 在电子邮件附件中传递 Oauth 令牌

我们有一个生成令牌的身份验证服务器。我们了解到,使用令牌,当您发出 HTTP 请求时,您必须在 HTTP 标头中传递 Authentication Bearer: xxxxx。

现在我的问题是用户是否可以使用令牌创建附件并向发件人发送电子邮件,然后发件人从附件中提取令牌并针对身份验证服务器对其进行验证?

感谢您的时间和帮助,

0 投票
1 回答
1118 浏览

angularjs - webapi owin 使用令牌和 cookie

我的 Web 应用程序中有两个主要项目:

  1. WebApi 项目作为后端为 Web 项目提供身份验证和授权,使用带有不记名令牌的 OWIN 2。
  2. Web 项目使用 Angularjs。

Web 项目按预期工作(身份验证和授权工作)

方法:将token存储到localstorage,每次请求使用拦截器发送。

现在我想为 WebApi 项目添加身份验证和授权,该项目将为 Hangfire、Elmah 和帮助页面等其他模块提供服务。我添加了相同的登录逻辑,该逻辑有效(授权),然后重定向到有效的仪表板页面(使用 Angularjs)。

但是转到任何其他页面(提到的模块之一)都不起作用。由于不起作用:Owin 上下文中的用户始终为空/空。(请参阅代码)

就我的理解而言,我需要以某种方式将令牌与此处未发生的每个请求一起发送。

问题:

  1. 我该如何实现(发送/获取令牌)?

    如果 cookie 是唯一/更好的方法 ↴</p>

  2. 如何集成项目 1 的 cookie 和项目 2 的令牌?(尝试使用 cookie,但似乎我做错了,或者它是否与不记名令牌同时工作?)

代码:

我尝试用于测试目的:

并在配置中:

潜在重复: 在 WebAPI 的查询字符串中传递和验证 OWIN Bearer 令牌

0 投票
0 回答
1286 浏览

asp.net-identity - 如何从令牌获取 Owin 上下文(来自查询字符串)

我可以从 Querystring 中的令牌初始化 Owin 上下文吗?

我将 Owin 与不记名令牌一起使用,但是当我尝试授权对 HangFire 的访问时,我从用户(身份)那里得到了 null。

但我在查询字符串中有令牌。我可以用它来获取用户吗?或初始化上下文?

代码:

0 投票
1 回答
1890 浏览

c# - 为什么在 ValidateIdentity(OAuthValidateIdentityContext context) 中调用 context.Rejected() 之后调用 webapi 控制器的方法

在我从 VS2013 中的模板创建的 webapi 应用程序中,我在 Startup.Auth.cs 文件中添加了自定义 OAuthBearerAuthenticationProvider 类:

我还添加了变量:

在 ConfigureAuth(IAppBuilder app) 方法中,我添加了以下代码行以使用自定义 OAuthBearerAuthenticationProvider 类:

我为实现我自己的不记名令牌验证的自定义逻辑所做的所有这些更改。由于某种原因,在 VS 2013 中从模板创建的 Webapi 应用程序中没有实现 SecurityStamp 验证。我认为这应该默认完成。

为了验证 SecurityStamp 验证概念,我更改了数据库中的 SecurityStamp,然后使用旧的不记名令牌从客户端调用了一些 webapi 方法,即包含旧的 SecurityStamp 声明。请注意,我的 webapi 控制器带有 [Authorize] 属性注释。在调用 ValidateIdentity(OAuthValidateIdentityContext context) 方法并执行 context.Rejected() 行之后,我期望 webapi 方法不应该在此之后调用,并且应该将 401 Unauthorized 响应发送回客户端。

但是这一切都没有发生。确实调用了 Webapi 方法,并且客户端确实成功地从服务器获取了敏感数据,而不应这样做,因为客户端发送到服务器进行身份验证和授权的旧不记名令牌在更改密码后必须无效。

我认为如果在 ValidateIdentity 方法中调用了 context.Rejected(),则不应调用任何 [Authorize] 修饰的 webapi 方法,并且客户端应该收到类似 401 Unauthorized 的响应。

我误解了整个事情吗?如果有人能解释一下它是如何工作的,好吗?为什么在调用 context.Rejected() 后,[Authorize] 注释控制器的 webapi 方法被调用并成功返回敏感数据?为什么没有发送 401 Unauthorized 响应?当 SecurityStamp 声明与当前数据库中的不同时,如何实现将 401 Unauthorized 响应发送回客户端的目标?

0 投票
0 回答
165 浏览

ios - STTwitter 返回 nil iOS

我正在使用 STTwitter 库(最新版本)并尝试通过 oAuth 进行身份验证来获取推文,特别是使用提供不记名令牌的仅应用程序身份验证。我使用了 GitHub 上提供的示例代码,但在注销时既没有成功也没有错误。这是我的代码:

任何帮助将不胜感激。我找不到其他专门针对 api v1.1 的 twitter 库。