当前位置: 首页 > 软件库 > Web应用开发 > >

jwt-cpp

JSON Web 令牌库
授权协议 MIT
开发语言 C/C++
所属分类 Web应用开发
软件类型 开源软件
地区 不详
投 递 者 白嘉志
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

jwt-cpp 是用于在 C++11 中创建和验证 JSON Web 令牌 的 header only 库。

签名算法

jwt-cpp支持标准中定义的所有算法。模块化设计允许轻松添加其他算法而不会出现任何问题。

为了完整起见,这里列出了所有支持的算法:

HMSC RSA ECDSA PSS EdDSA
HS256 RS256 ES256 PS256 Ed25519
HS384 RS384 ES384 PS384 Ed448
HS512 RS512 ES512 PS512  
    ES256K    

SSL 兼容性

由于良好的灵活性和可扩展性,jwt-cpp支持OpenSSLLibreSSLwolfSSL。阅读此页面了解更多详情。这些是当前正在测试的版本:

OpenSSL LibreSSL wolfSSL
1.0.2u
   

ℹ️注意:可以在此处找到过去测试的完整版本列表。

概述

不存在对 JSON 库的硬依赖。相反,有一个jwt::basic_claim围绕类型特征模板化的泛型,它描述了值、对象、数组、字符串、数字、整数和布尔值的语义JSON 类型,以及在它们之间进行转换的方法。

jwt::basic_claim<my_favorite_json_library_traits> claim(json::object({{"json", true},{"example", 0}}));

这允许在选择要使用的库时完全自由。有关详细信息,请阅读此页

为了您的方便,serval traits 实现提供了一些流行的 JSON 库。他们是:

   

为了保持兼容性,picojson仍然被用来提供一个专门的jwt::claimalong all helpers。定义JWT_DISABLE_PICOJSON将删除此可选依赖项。可以直接包含其他 JSON 库的特征默认值。有关详细信息,请参阅特征示例

至于 JWTs 的 base64 要求,这个库提供base.h了所有需要的实现;然而,base64 实现非常普遍,具有不同程度的性能。在提供自己的 base64 实现时,您可以定义JWT_DISABLE_BASE64禁用 jwt-cpp 的实现。

  • 最近做项目遇到一个问题,需要用jwt实现token的验证。首先到jwt的官网https://jwt.io/#libraries查看jwt支持哪些开源库。由于我用的是C++开发的项目,通过比较各个C++开源库,所以最终采用https://github.com/Thalhammer/jwt-cpp这个开源库实现基于jwt的token验证。采用该开源库主要是因为:1、该开源库支持所有的加密算法,可以参考

  • 一 构建令牌配置对象 package com.jt.auth.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.oauth2.provi

  •   一、安装 通过composer安装 运行以下命令以引入最新版本: composer require tymon/jwt-auth 添加服务提供商 将服务提供程序添加到配置文件中的providers数组,config/app.php如下所示: 'providers' => [ ... Tymon\JWTAuth\Providers\LaravelServiceProvide

  • 一、JWT简介 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 使用方式:服务端根据规范生成一个令牌(token),并且发放给客户端(保存在客户端)。此时客户端请求服务端的时候就可以携带者令牌,以令牌来证明自己的身份信息。 作用:类似sessio

  • 前言:JWT(JSON Web token)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。JWT是REST API中经常使用的一种机制。 JWT是一种由Header、PayLoad和Key计算并组合得到的数字令牌。简单点说就是一个字符串,由三部分组成,分别是:头部(Header)、载荷(PayLoad)、签名(sign)。 一、各部分介绍及使用体验   He

  • JWT(jsonwebtoken) 目前最流行的跨域身份验证解决方案 在nodejs中使用 安装 npm install jsonwebtoken --save 使用 1.在路由中引入 var jwt = require('jsonwebtoken'); 2.定义一个密钥 const secret = 'nidemiyao'//用于加密 3.定义生成token的函数 //生成token //

 相关资料
  • 我们正在使用JWT Nuget来创建和验证令牌。下面是我们用来创建令牌的代码 我的理解是,这不会加密令牌,因为我能够通过访问jwt.io解析令牌,并且能够读取内容。我想加密令牌,这样它就不应该被解析。我在JWT Nuget中找不到任何可以加密令牌的方法。 那么如何使用JWT nuget对令牌进行签名和加密呢? 编辑: 我知道JWT不需要任何加密,因为只有经过身份验证的用户才能读取令牌,这意味着,我

  • 我已经验证了JWT令牌,它在会话存储中。 计算机1以普通用户身份登录计算机2以管理员身份登录 如果我在会话存储中将机器1 jwt令牌替换为机器2,并且如果我进一步调用api,服务器应该说未经授权的访问。

  • 我正在构建一个使用JWT进行身份验证的应用程序。我开始做一些研究,但对于诸如刷新令牌和令牌存储之类的主题缺乏共识,我感到惊讶。 据我所知,JWT和OAuth是两个不同的协议,它们遵循不同的规范。 但我的问题是,对于一个没有通过第三方资源服务器如Google、Facebook等认证的应用程序,有一个刷新令牌真的有用吗?为什么不让JWT令牌像刷新令牌一样持续时间长。 另一方面,我可以看到,如本文所述,

  • 我很难让Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便使用javajwt库验证它们。 我正在使用Auth0登录,并使用获取访问令牌-我尝试将访问群体设置为我们的API标识符(在多个位置,包括lock auth参数和负载),但没有成功-返回访问令牌,但不是JWT。 或者,是否有用于验证“本机”Auth0访问令牌的Java库? 返回的代码用于POST到

  • 我正在构建一个移动应用程序,并且正在使用JWT进行身份验证。 最好的方法似乎是将JWT访问令牌与刷新令牌配对,这样我就可以根据需要频繁地使访问令牌过期。 刷新令牌是什么样子的?是随机字符串吗?那串加密了吗?是另一个JWT吗? 刷新令牌将存储在用户模型的数据库中以便访问,对吗?在这种情况下似乎应该加密 在用户登录后,我是否会将刷新令牌发送回,然后让客户端访问单独的路由来检索访问令牌?

  • 我有一个使用. net core 2.0构建的Web API和一个使用xamarin构建的移动应用程序。要登录移动应用程序,请通过传递(用户名和密码)调用Web API。如果凭据有效,Web Api会提供一个JWT令牌。移动应用程序有一个功能,即使您关闭应用程序,也可以让用户保持登录状态,例如(facebook、Instagram等…)。 问题是: 如何在用户登录应用程序之前保持JWT令牌有效,而

  • 我使用jsonwebtoken解码我的令牌,看看它是否已过期。但是,控制台.log返回 null。 我不明白,因为我的令牌不为空

  • 这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre