问题标签 [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.
angularjs - NodeJs : Passport Bearer + Api (google, fb, ...)
我正在使用 NodeJs 和 PassportJs 开发一个用于身份验证的 restful api。为了避免会话(无状态),我使用不记名令牌(passport-http-bearer)来验证用户(客户端:AngularJs)。
但是,当我想将 facebook 帐户与 google 关联时,我遇到了一个问题。创建不同的帐户很容易,但是将它们链接到一个用户,我不知道如何继续(我认为一种方法是通过远程 API 传播令牌)。
这是我的护照策略代码:
这里是我的身份验证路线:
你知道如何进行吗?
谢谢你。
asp.net - 如何将角色添加到 asp 身份承载令牌
我实现了OWIN不记名令牌授权,并基于这篇文章:http ://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity /,现在我想将角色添加到不记名令牌中,这样我就可以像使用用户名一样在控制器上检索它......identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
并且能够获取当前用户的用户名User.Identity.Name
asp.net-mvc-4 - ASP.NET Web API 授权令牌提前到期
如此处所述,我已经为我的 web api(个人帐户)实现了安全性。
我在godaddy(共享主机)上托管了该网站,并且运行良好。当我使用 url "domain.com/token" 请求令牌时,我得到的令牌到期日期在 15 天内。我已经在“StartupAuth.cs”中使用
例如:
(我在上面的代码中输入了值,但你明白了“.expires”字段的概念。
获得令牌后 5 分钟,当我尝试通过传递授权访问“get”或“post”或我的 API 中的任何方法时:标头中的不记名令牌为:
我收到此错误:
虽然它只有 5 分钟,并且令牌应该持续 15 天,但它会在 5 分钟内到期。当我在 5 分钟的间隔内请求任何方法“get”/“post”时,我的 JSON 数据得到了正确的响应。总之,授权成功。
我已经通过 Fiddler、Chrome 的 REST 插件和使用 API 的移动应用程序对其进行了测试,从而重复了这种行为。
我有如下会话的 web.config 值(我认为它是相关的)
请注意,不使用表单身份验证,因此 web.config 中该部分的超时不是必需的。
知道发生了什么吗?此超时导致使用 API 的移动应用程序的用户不时重新登录。任何帮助,将不胜感激。
谢谢。
asp.net-identity - 如何在 MVC 6 API 中使用不记名令牌?
我正在研究一些 MVC 6 和 ASP.NET 5 示例,但在查找有关使用不记名令牌保护 API 的任何有价值的文档时遇到问题。我能够使此类示例与 VS 2013、MVC 5 一起使用,但我无法将这些示例移植到 VS 2015 和 MVC 6。有谁知道在 MVC 6 中实现不记名令牌以保护 API 的任何好的示例?
c# - 如何获取 AD 用户名以使用 angular-js SPA / ASP.NET-MCV 启动不记名令牌身份验证
我正在为我的公司开发一个 Angular JS SPA,它使用不记名令牌来验证用户。使用 ASP MCV 作为后端,我设置了 OWIN 中间件来处理服务器上的不记名令牌。我的目的是为 Web 应用程序的用户生成不记名令牌,以锁定公开的 API。这里的复杂之处在于我需要根据 AD 用户的域\用户名生成不记名令牌,但要使不记名令牌工作,我无法启用 Windows 身份验证。登录不是一种选择,必须验证用户的 AD 凭据。
到目前为止,我已经设法实现: 在禁用 Windows 身份验证和启用匿名身份验证的情况下,我的 API 可以根据在标头中传递给它的不记名令牌来验证请求。为此,我创建了一个虚拟用户。
我需要实现的目标: 以“DOMAIN\Username”形式为用户获取 AD 用户名,以便我可以基于此创建不记名令牌。(到目前为止,我只能在启用 Windows 身份验证的情况下执行此操作)
我面临的问题是我无法启用 Windows 身份验证,否则当我将 [Authorize] 属性放在 API 上时,它将基于 Windows 身份验证进行验证,无论是否有有效的承载令牌。
您可能会认为我正在尝试做的事情毫无意义,因为我可以使用 Windows 身份验证,但我需要不记名令牌,以便只能从我的 SPA 调用 API 以确保安全。
到目前为止,我设法通过在启用了 Windows 身份验证的不同 Web 项目中创建 API 来获取用户 ID,但是,页面加载时间受到了影响,因此我想避免以这种方式获取用户 ID。
c# - ASP.NET SPA WEBAPI BEARER TOKEN 在 winhost 上没有被记住
我有这个使用 BEARER TOKEN 身份验证的 ASP.NET web SPA web api 项目。
我已经将它部署到几个不同的地方,本地和天蓝色的云,我没有看到这个问题。
由于预算原因,我决定从托管公司 (winhost) 购买。当站点仅从该主机运行时,我只看到以下问题。
问题是在您登录站点并闲置 X 分钟后,下一个请求将失败,直到您刷新并登录。(我得到一个 401(未经授权))
令牌的到期时间似乎只有 10-20 分钟而不是 2 周(默认情况下适用于 azure 和我的本地视觉工作室)。收到时我也打印了令牌,现在是 2 周。
我期望的行为是要缓存的不记名令牌(我已通过记录标头确认),然后与下一个请求一起发送,然后被授权并返回结果。
这个新主机有一些我认为破坏它的默认 IIS 设置。我已经不得不更改一些默认设置,例如通过 IIS 管理器手动关闭基本身份验证。
有任何想法吗?
我唯一能找到与我所看到的描述相匹配的是这个链接。 ASP.NET Web API 授权令牌提前到期
我会对该帖子发表评论,但我没有足够高的声誉点。为方便起见,我在下面复制了该帖子。
如此处所述,我已经为我的 web api(个人帐户)实现了安全性。
我在godaddy(共享主机)上托管了该网站,并且运行良好。当我使用 url "domain.com/token" 请求令牌时,我得到的令牌到期日期在 15 天内。我已经在“StartupAuth.cs”中使用
例如:
(我在上面的代码中输入了值,但你明白了“.expires”字段的概念。
获得令牌后 5 分钟,当我尝试通过传递授权访问“get”或“post”或我的 API 中的任何方法时:标头中的不记名令牌为:
我收到此错误:
虽然它只有 5 分钟,并且令牌应该持续 15 天,但它会在 5 分钟内到期。当我在 5 分钟的间隔内请求任何方法“get”/“post”时,我的 JSON 数据得到了正确的响应。总之,授权成功。
我已经通过 Fiddler、Chrome 的 REST 插件和使用 API 的移动应用程序对其进行了测试,从而重复了这种行为。
我有如下会话的 web.config 值(我认为它是相关的)
请注意,不使用表单身份验证,因此 web.config 中该部分的超时不是必需的。
知道发生了什么吗?此超时导致使用 API 的移动应用程序的用户不时重新登录。任何帮助,将不胜感激。
谢谢。
angularjs - IE11 覆盖内网环境中的 Bearer 授权标头
我在 IE11 中遇到了一个非常奇怪的问题,即使我通过 AngularJS 设置它,浏览器也会覆盖我请求中的 Authorization 标头。
基本上,我为所有看起来像这样的请求注册了一个 HTTP 拦截器:
这适用于所有浏览器(在某些条件下甚至是 IE)。我在 IIS 中将我的应用程序设置为允许匿名身份验证,并且为此子站点禁用了基本/集成身份验证,但是,父配置启用了 Windows 身份验证。
偶尔发生的情况是浏览器会向根 URL 发出请求以获取静态文件(例如/favicon.ico
)。此请求被 401 拒绝。浏览器以协商的身份验证响应并获取网站图标。此时,所有其他浏览器仍然让我的代码设置 Authorization 标头,但是一旦在 IE 中发生这种集成身份验证,授权标头似乎卡住了 - 无论我的代码做什么,授权标头始终使用集成身份验证。这会导致对我的 API 的所有请求都失败,因为不存在承载令牌。
我可以通过指定一个更本地的 favicon(可以匿名提供静态文件)来解决 favicon 问题,但我想知道这个问题是否有更简单的解决方案。即使在先前的请求中进行了 Windows 身份验证,我能否以某种方式说服 IE 让我设置 Authorization 标头?
注意:我发现这个问题似乎是相关的(可能是相同的根本原因)。
c# - 从 GrantResourceOwnerCredentials 返回自定义“无效授权”错误消息
当身份验证失败并在它的 GrantResourceOwnerCredentials 方法中SimpleAuthorizationServerProvider
返回时;
但是,我需要使用一个TEntity
类返回我自己的 JSON 响应,任何帮助将不胜感激。
asp.net-web-api - Azure 移动服务、Auth0、Web Api 和授权属性
对于移动应用程序(Cordova 和 AngularJS),我使用带有 Web Api 的 Azure 移动服务。我目前正在尝试不同的 OAuth 实现,看看哪一个最适合我的需求。尝试了来自 ngCordova、OAuth.io、WAMS 服务器流的 OAuth 和带有 WAMS 委托的 Auth0。我还遇到了使用“JsonWebToken DelegationHandler for WebAPI”的选项。使用这种方法,我应该使用“System.Web.Http.Authorize”属性。当我调试时JsonWebTokenValidationHandler
,一切看起来都很好(IsAuthenticated 为真等),但最后,返回 401。我猜,WAMS 会覆盖用户主体。查看 WAMS 日志显示“不支持 'Bearer' HTTP 身份验证方案”。
我的第一个想法是,我可能可以删除特定的消息处理程序,但似乎并非如此。有没有人有想法让它与 WAMS 一起使用?
asp.net - asp.net 身份在 20 分钟后过期不记名令牌
我有一个网络服务,用户可以登录服务并提供不记名令牌。
在本地一切都很好,但在服务器(共享主机,windows 2012,iis 8.5)中,20 分钟后,令牌已过期!!!
我的 AccessTokenExpireTimeSpan 是:
同样在我的第一个请求中,我延迟了大约 5 秒。什么是问题?