标签: http-token-authentication

什么是基于令牌的身份验证

我想了解基于令牌的身份验证的含义.我搜索了互联网,但找不到任何可以理解的东西.

security authentication token http-token-authentication

489
推荐指数
7
解决办法
37万
查看次数

Web API中基于令牌的身份验证,没有任何用户界面

我正在ASP.Net Web API中开发REST API.我的API只能通过非基于浏览器的客户端访问.我需要为我的API实现安全性,所以我决定使用基于令牌的身份验证.我对基于令牌的身份验证有一个公平的理解,并阅读了一些教程,但他们都有一些用于登录的用户界面.我不需要任何用于登录的UI,因为登录详细信息将由客户端通过HTTP POST传递,HTTP POST将从我们的数据库授权.如何在API中实现基于令牌的身份验证?请注意 - 我的API将以高频率访问,因此我还必须注意性能.如果我能更好地解释,请告诉我.

.net c# authentication asp.net-web-api http-token-authentication

63
推荐指数
2
解决办法
14万
查看次数

JSON Web Signature(JWS)和JSON Web Token(JWT)有什么区别?

我一直用Java编写RESTful服务.这是我到目前为止所理解的(如果我错了,请纠正我):

令牌授权使用JSON Web令牌(JWT)完成,它包含三个部分:头,有效负载和秘密(在客户端和服务器之间共享).

我理解这个概念,并在阅读JWT时偶然发现了JSON Web Signature(JWS).

JWS也是类似于JWT的编码实体,具有头部,有效载荷和共享秘密.

问题:两个概念有什么区别,即JWT和JWS?如果它们在技术上相似,那么它们的实现有何不同?

这是我第一次使用基于令牌的身份验证,所以我可能完全误解了这个概念.

PS我在浏览本网站上的示例时了解了JWS .

java rest restful-authentication jwt http-token-authentication

47
推荐指数
2
解决办法
2万
查看次数

Is a Refresh Token really necessary when using JWT token authentication?

I am referencing another SO post that discusses using refresh tokens with JWT.

JWT (JSON Web Token) automatic prolongation of expiration

I have an application with a very common architecture where my clients (web and mobile) talk to a REST API which then talks to a service layer and data layer.

在此输入图像描述

I understand JWT token authentication, but I am a little confused at how I should use refresh tokens.

I want my JWT authentication to have the following properties:

  1. JWT …

oauth-2.0 jwt http-token-authentication

27
推荐指数
3
解决办法
6834
查看次数

django rest framework - 令牌认证注销

我已经根据django rest框架Docs实现了令牌认证.

从我读到的形式来看,DRF的令牌认证非常简单 - 每个用户一个令牌,令牌不会过期并且始终有效(我是对的吗?).

我知道有更好的做法,但是现在DRF令牌认证对我来说很好.

我的问题是 -使用普通DRF令牌身份验证注销的最佳做法什么?

我的意思是,当用户注销时,我应该从客户端删除令牌吗?然后登录再次获取令牌?我应该删除令牌并生成一个新令牌吗?

有经验的人吗?

login token logout django-rest-framework http-token-authentication

22
推荐指数
2
解决办法
2万
查看次数

Django TokenAuthentication缺少'Authorization'http标头

我正在尝试将TokenAuthentication与我的一个视图一起使用.如https://www.django-rest-framework.org/api-guide/authentication/中所述,我将登录时收到的令牌添加为我发送的请求中称为"授权"的HTTP头.

问题是在我的单元测试中,身份验证失败了.查看TokenAuthentication类,我看到正在检查的标头是'HTTP_AUTHORIZATION'而不是'授权'

我正在使用的视图:

class DeviceCreate(generics.CreateAPIView):
    model = Device
    serializer_class = DeviceSerializer

    authentication_classes = (TokenAuthentication,)
    permission_classes = (IsAuthenticated,)
Run Code Online (Sandbox Code Playgroud)

将标题更改为"HTTP_AUTHORIZATION"似乎有效,但感觉不对.

我错过了什么吗?

django authorization django-rest-framework http-token-authentication

16
推荐指数
2
解决办法
1万
查看次数

使用sails.js实现passport-http-bearer标记

我正在尝试实施护照的passport-http-bearer策略,但它没有找到有信息的用户Bearer realm="Users".

request是一个帖子请求:

{'token':'simple_access_token',} 
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会出现这种错误?我也知道这req应该是httpsssl代替http.我怎么做?

我使用的代码是:

bearerPassportToken: function(req,res){
        passport.authenticate('bearer', function(err, user, info){
          if ((err) || (!user)) {
            if (err) return;
            if (!user)  
                console.log("info);//Info: Bearer realm="Users"
            res.redirect('/login');
            return;
          }
          req.logIn(user, function(err){
            if (err){
                res.redirect('/login');
            }
            //Need to write code for redirection
            ;
          });
        })(req, res);
    },
Run Code Online (Sandbox Code Playgroud)

node.js express http-token-authentication sails.js passport.js

14
推荐指数
1
解决办法
1万
查看次数

如何在Flask中实现令牌认证?

我正在尝试允许用户使用来自单独Web服务的帐户登录我的Flask应用程序.我可以联系此Web服务的api并获得安全令牌.如何使用此令牌对用户进行身份验证,以便他们可以访问受限制的视图?

我不需要将用户保存到我自己的数据库中.我只想为会话验证它们.我相信这可以使用Flask-Security和@auth_token_required装饰器完成,但文档不是很详细,我不知道如何实现它.

编辑:

这是一个代码示例:

@main.route("/login", methods=["GET", "POST"])
def login():

    payload = {"User": "john", "Password": "password123"}
    url = "http://webserviceexample/api/login"
    headers = {'content-type': 'application/json'})

    #login to web service
    r = requests.post(url, headers=headers, json=payload)
    response = r.json()

    if (r.status_code is 200):
        token = response['user']['authentication_token']

        # allow user into protected view

    return render_template("login.html", form=form)


@main.route('/protected')
@auth_token_required
def protected():
    return render_template('protected.html')
Run Code Online (Sandbox Code Playgroud)

python authentication flask flask-security http-token-authentication

11
推荐指数
1
解决办法
2万
查看次数

如何使用Asp.Net Web API 2中的Owin OAuth2修改令牌端点响应主体

我想从令牌端点响应修改响应主体.

我试图用MessageHandler 拦截/ Token请求,但它不起作用.

我可以通过覆盖OAuthAuthorizationServerProvider.TokenEndpoint方法为响应添加一些额外的信息,但是我无法创建自己的响应体.

有没有办法拦截/ Token请求?


编辑

我发现了如何从令牌端点响应中删除响应主体内容,如下所示: HttpContext.Current.Response.SuppressContent = true;

这似乎是实现我的目标的正确方法,但现在当我使用该context.AdditionalResponseParameters.Add()方法添加我的自定义信息时,SuppressContent阻止任何改动.

现在我有这样的事情:

// Removing the body from the token endpoint response
HttpContext.Current.Response.SuppressContent = true;
// Add custom informations
context.AdditionalResponseParameters.Add("a", "test");
Run Code Online (Sandbox Code Playgroud)

asp.net oauth-2.0 asp.net-web-api owin http-token-authentication

10
推荐指数
1
解决办法
8709
查看次数

Web Api OWIN - 如何在每个请求上验证令牌

我有两个申请

  1. 客户端应用程序构建在ASP.NET MVC上
  2. 身份验证服务器构建在Web API + OWIN上

计划身份验证如下

  1. 对于用户登录,客户端应用程序将向具有登录凭据的身份验证服务器发出请求.
  2. Authication服务器将生成令牌并将发送回客户端应用程序.
  3. 客户端应用程序将该令牌存储在本地存储中.
  4. 对于每个后续请求,客户端应用程序将附加的令牌保存在请求标头中的本地存

现在,在关闭应用程序的服务器端,我需要确认每个请求的令牌都没有被篡改.

  1. 请建议我如何在每个请求中验证令牌,因为我不知道OWIN用于生成令牌的密钥.
  2. 编写代码以在客户端应用程序上验证令牌是正确的,或者它应该在身份验证服务器上.
  3. 我打算转移所有用户管理代码,如注册用户,将密码更改为认证服务器,以便我们可以将其重新用于不同的客户端应用程序 - 这是正确的设计实践吗?

到目前为止,我已经编写了下面的代码来创建一个POC.

========================= OWIN配置========

    [assembly: OwinStartup(typeof(WebApi.App_Start.Startup))]
    namespace WebApi.App_Start
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                HttpConfiguration config = new HttpConfiguration();

                ConfigureOAuth(app);

                WebApiConfig.Register(config);
                app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
                app.UseWebApi(config);
            }

            public void ConfigureOAuth(IAppBuilder app)
            {
                OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
                {
                    AllowInsecureHttp = false,
                    TokenEndpointPath = new PathString("/token"),
                    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                    Provider = new SimpleAuthorizationServerProvider(),

         };

         // Token Generation

                app.UseOAuthAuthorizationServer(OAuthServerOptions);
                app.UseOAuthBearerAuthentication(new 
 OAuthBearerAuthenticationOptions());

            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api owin http-token-authentication

9
推荐指数
1
解决办法
7468
查看次数