问题标签 [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 投票
3 回答
12707 浏览

c# - 在 ASP.NET WebAPI 中检索不记名令牌

我有一个启用了身份验证的 Web API(不记名令牌)。这是由客户端应用程序调用的,我想保护它免受匿名使用,所以我想创建一个用户并为其创建一个不记名令牌。

我可以通过调用registertoken方法来创建令牌,但我想从代码中做到这一点。

  1. 据我所知,不记名令牌未存储在数据库中。可以使用 ASP.NET Identity API 以某种方式检索它吗?

  2. 我还想从代码创建此用户并将令牌保存在某处,因为我需要将数据库部署到多个服务器。

0 投票
1 回答
325 浏览

asp.net-mvc - 如何处理无效的不记名令牌

我有一个ASP.NET MVC网站和一个Web API 2项目。

我使用存储在身份声明中的不记名令牌来识别 API 上的用户。

它有效,但我注意到当我为 API 使用不同的服务器时,所有令牌都无效。

当令牌无效时(​​因为它是不同的服务器或因为它已过期),我对该怎么做感到困惑。

我们应该如何处理?

对于过期的令牌,我想我可以存储过期日期并要求一个新的令牌或实施OAuth2 Refresh Tokens。但是对于另一种情况,我不知道该怎么办。

谢谢

0 投票
6 回答
220155 浏览

oauth - OAuth 2.0 Bearer Token 到底是什么?

根据RFC6750 -The OAuth 2.0 Authorization Framework: Bearer Token Usage,承载令牌为:

一种安全令牌,具有任何拥有该令牌的一方(“持有者”)可以以任何其他拥有它的一方可以使用的任何方式使用该令牌的属性。

对我来说,这个定义是模糊的,我找不到任何规范。

  • 假设我正在实现一个授权提供程序,我可以为不记名令牌提供任何类型的字符串吗?
  • 可以是随机字符串吗?
  • 它是否必须是某些属性的 base64 编码?
    应该散列吗?
  • 服务提供者是否需要查询授权提供者才能验证此令牌?

感谢您的任何指示。

0 投票
3 回答
6519 浏览

dependency-injection - OAuthAuthorizationServerProvider 实现中的 Autofac 依赖注入

我正在创建一个 Web Api 应用程序,并且我想使用不记名令牌进行用户身份验证。我按照这篇文章实现了令牌逻辑,一切似乎都运行良好。注意:我没有使用 ASP.NET 身份提供程序。相反,我为它创建了一个自定义用户实体和服务。

这是我对 SimpleAuthorizationServerProvider 类的实现

调用 /token url 后,我收到以下错误

从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身

有没有办法在这个类中使用依赖注入?我正在使用存储库模式来访问我的实体,因此我认为创建对象上下文的新实例不是一个好主意。这样做的正确方法是什么?

0 投票
3 回答
6575 浏览

encryption - Bearer 令牌 (OAuth2) 是如何创建的?

我想知道,加密和解密 OAuth2 中使用的 Bearer 令牌和 Asp.Net Identity 中的代码的内部过程是什么。

一旦服务器接收到一个令牌,它就能够检索 UserId、Roles、Claims 和其中的所有属性。那么,承载令牌是如何解密的呢?什么是加密算法和使用的代码?

0 投票
2 回答
1749 浏览

.net - MVC 5 和 Web API 之间的 Owin 身份验证(单独的 IIS 应用程序)

我有一个使用表单身份验证和承载令牌的 MVC5 和 Web API(两个不同的 IIS 应用程序)的工作应用程序。是的,它们必须是两个独立的 IIS 应用程序。我在我的表单身份验证 cookie 中使用身份验证令牌作为用户名,这就是我能够从 MVC 和 Web API 来回传递令牌的方式。

我也在使用 Asp.net Identity 2.0。

我想将表单身份验证排除在等式之外,只使用 Owin 身份验证,但是当我确实发布了承载令牌时,我的 MVC 应用程序中的 User.Identity.IsAuthenticate 总是错误的。

谁能指出我如何记住 MVC 和 Web API 之间没有表单身份验证的身份验证令牌的代码?

0 投票
1 回答
405 浏览

ruby-on-rails - 对于 Rails 上的 twitter gem,我如何有效地调用 user_timeline 并为多个用户抓取推文?

在我的 Rails 控制器中,我有一个名为“usernames”的数组,它只有 10 个没有“@”符号的 twitter 句柄。我将这些用户的最新推文存储在一个名为“tweets”的数组中,分配如下:

其中 $client_local 是:

我使用了 ruby​​ 基准测试模块,发现“tweets”任务需要 2.5 秒才能运行。我猜这需要很长时间,因为 user_timeline 函数被调用了 10 次,因此建立了 10 个单独的连接。

寻找解决方案,我去了sferik的github for configuration options,根据页面上的这个解释,我需要的是“bearer tokan”:

client.user("sferik")

注意:第一次调用此方法时,会发出两次 API 请求。首先,它将获取访问令牌以执行请求。然后,它将获取请求的用户。访问令牌将被缓存以用于使用同一客户端发出的后续请求,但您可能希望手动获取访问令牌一次并在初始化客户端时使用它以避免每次发出两个请求。

client.bearer_token

此令牌永不过期,除非失效,否则不会更改。获得不记名令牌后,您可以使用它来初始化客户端以避免发出额外的请求。

  1. 我无法找到我的应用程序的不记名令牌或弄清楚如何获得一个
  2. 如果这是我的问题的解决方案,或者我应该寻找其他东西,我不是 100%。

想法?

在网上搜索时,我看到有人建议在我的 Twitter 帐户上列出这些用户,然后请求“列表/状态”。这不是一个选项,因为每次设置数组时,“用户名”数组中的 10 个用户名都是不同的。

0 投票
3 回答
6052 浏览

asp.net-mvc - 在 MVC API 中使用 Microsoft Azure Active Directory 对 OAuth 2.0 不记名令牌进行身份验证时出现 401

我正在MVC 中编写 API 服务(没有视图,只有 API),并且我想使用通过 client_credentials 流(2-legged OAuth)获取的 OAuth 2.0 令牌。我在 Azure 管理门户中创建了一个 ActiveDirectory 应用程序,并成功获得了一个不记名令牌(请参阅底部 Postman 的屏幕截图)。

然后我安装了Microsoft.Owin.Security.ActiveDirectorynuget 包,创建了一个 Owin 启动类,并在其中编写了以下代码:

我添加了一个带有操作的控制器,并且我希望可以使用不记名令牌访问该操作。

这是控制器:

我正在尝试使用这样的 Authorization 标头来调用它:

调用端点

但是,我收到 401:“您无权查看此目录或页面”。详情如下:

看起来我的不记名令牌被忽略了。

我究竟做错了什么?


附录:使用 client_credentials 流在 Postman 中创建 Azure Active Directory OAuth 持有者令牌:

在 Postman 中创建令牌

0 投票
2 回答
18914 浏览

asp.net - 向 web api 发送 ajax 请求时出现 401 Unauthorized

我已经为此挠头2天了。我正在使用 WebAPI 2.2 版,并且正在使用 CORS。此设置适用于服务器端,我可以从我的 Web 客户端服务器代码中获取授权内容,但在我的 ajax 调用中获得未经授权的内容。

这是我的配置:

Web API 配置

WebApiConfig:

启动.Auth.cs:

(我已经尝试过 app.UseCors(CorsOptions.AllowAll) 和 config.EnableCors() 的所有组合)

我的控制器属性:

网络客户端

阿贾克斯调用:

饼干制作:

最后但并非最不重要的是,我的标题。

开发人员工具和提琴手声称没有随请求发送的 cookie。

0 投票
3 回答
49317 浏览

c# - 在 WebApi 中使用 OAuth Bearer Tokens Generation 和 Owin 向客户端返回更多信息

我创建了一个 WebApi 和一个 Cordova 应用程序。我正在使用 HTTP 请求在 Cordova 应用程序和 WebAPI 之间进行通信。在 WebAPI 中,我实现了 OAuth Bearer Token Generation。

这是在SimpleAuthorizationServerProvider实现内部

从 Cordova 应用程序对 API 的成功登录请求后,我收到以下 JSON

问题是,我需要有关用户的更多信息。例如,我在数据库中有一个 UserGuid 字段,我想在登录成功时将其发送到 Cordova 应用程序,并稍后在其他请求中使用它。"access_token", "token_type"除了和之外,我是否可以包含其他信息以返回给客户"expires_in"?如果没有,我怎样才能在基于 API 的 API 中获取用户access_token


编辑:

我认为我找到了解决方法。我在里面添加了以下代码GrantResourceOwnerCredentials

之后,我像这样访问控制器内的 GUID:User.Identity.Name

我还可以使用自定义名称添加 guididentity.AddClaim(new Claim("guid", user.UserGuid.ToString()));

我仍然很想知道是否有办法使用不记名令牌 JSON 向客户端返回更多数据。