出身背景
我已经实现了ThinkStructure。识别服务器。V3(openID Connect one)。我已将OAuth2承载令牌以以下形式返回给我的javascript客户端(隐式流):
{
"id_token": "eyJ0eXAiOiJKV1QiLCJh...", // JWT
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni..", // JWT
"token_type": "Bearer",
"expires_in": "3600",
"scope": "openid profile read write email",
"state": "1299139105028949"
}
但在所有示例中,它们仅在调用服务时将access_token传递给资源提供程序。
$.ajax({
url: 'http://localhost:2727/Account/123/Get',
headers: {
Authorization: "Bearer " + $scope.response.access_token
}
})
假设
如果我做对了,我会用访问令牌进行身份验证。然后,我根据id_令牌中的声明进行授权(我不想进行单独的DB调用——我希望它完全独立)。
问题
我将如何通过ajax(假设我已经设置了CORS等)将这些信息传递给我的webapi2endpoint?我需要连接什么中间件来验证它?(我猜是一个令牌验证器和一个claimsManager,但有太多了,我无法决定哪一个是正确的)。
帮助非常感谢
似乎您使用了AngularJS,所以您可以使用$http
服务来设置头中的令牌
例如:
$http.post("/login", credentials).then(function(response) {
$httpProvider.defaults.headers.common["Authorization"] = "Bearer " + $scope.response.access_token;
});
每节课你必须做一次。
更新
使用jQuery这样的东西
//This repesent the token you got after login
var authToken = {
"id_token": "eyJ0eXAiOiJKV1QiLCJh...", // JWT
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni..", // JWT
"token_type": "Bearer",
"expires_in": "3600",
"scope": "openid profile read write email",
"state": "1299139105028949"
}
$.ajax({
url: "http://localhost:2727/Account/123/Get",
type: "get",
dataType: "json",
beforeSend: function (request)
{
request.setRequestHeader("Authorization", authToken.token_type + " " + authToken.access_token);
}
});
id_token是为客户端准备的——它必须由客户端验证(如果客户端没有必要的加密库,则由idsrv中的身份令牌验证终结点验证)。之后,您使用访问令牌来访问资源。
我与React、Express、MongoDB的应用程序。 我想为Axios post请求传递带有标头的身份验证令牌。 但是,当我试图通过它,得到403错误(禁止)。 本地存储 我正在从本地存储中检索所有身份验证数据 Axios。邮递 我在这里调用axios post请求 API头和响应 这是我从浏览器中得到的响应 我的邮递员电话打得很好
我使用springfox 2.9.2我有这样的api: 女巫来自身份验证服务器。我尝试在swagger中首次调用此服务器,并将其传递给像上面这样的控制器请求。所以我做 在Swagger ui上,授权调用成功返回了令牌,但它没有将令牌添加到请求头中。它会产生 如果我像这样设置令牌:
我将授权:承载{令牌}作为HTTP请求传递给我的SymfonyRest控制器。 我的请求: 在我的控制器内: 由于某种原因,当我使用Symfony的请求方法时,授权标头对我的控制器不可用。当我使用PHP的getallheaders()时,授权头将按预期显示。你知道为什么Symfony没有看到吗? 谢谢
这是云运行中的bug,还是我们需要做一些不同的事情来获得完整的承载令牌?
我在做概念验证。我正在使用Azure Active Directory并试图在遗留项目中实现OAuth。 这个项目的一半使用Web表单,另一半直接通过JavaScript在另一个项目中调用WebAPI。 作为一个测试,我通过UseOpenIDConnectauthEntication的AuthorizationCodeReceed通知事件获得承载令牌。我使用以下代码将令牌快速写入调用WebAPI的
#!/usr/bin/env python import pika,sys,os def main(): connection = pika。BlockingConnection(pika。connection parameters(host = ' localhost '))channel = connection . channel() if name=='main':try:main()除了