JWT(JSON Web令牌)自动延长到期

我想为我们的新REST API实现基于JWT的authentication。 但是因为到期是在令牌中设定的,有可能自动延长吗? 我不希望用户在每个X分钟后都需要login,如果他们在那段时间内正在使用该应用程序。 这将是一个巨大的用户体验失败。 但延长期限会创build一个新的标记(旧的标记在到期之前仍然有效)。 每个请求后生成一个新的令牌听起来很愚蠢。 听起来像是一个安全问题,当多个令牌同时有效时。 当然,我可以使用黑名单使旧的使用无效,但我需要存储令牌。 JWT的好处之一就是没有存储空间。 我发现Auth0如何解决它。 他们不仅使用JWT令牌,而且使用刷新令牌: https : //docs.auth0.com/refresh-token 但是,为了实现这一点(没有Auth0),我需要存储刷新令牌并保持其到期。 那么真正的好处是什么? 为什么不只有一个令牌(不是JWT),并保持到服务器上到期? 还有其他的select吗? 是否使用JWT不适合这种情况?

什么开源的C ++静态分析工具可用?

Java有一些非常好的开源静态分析工具,如FindBugs , Checkstyle和PMD 。 这些工具易于使用,非常有帮助,在多个操作系统上运行并且免费 。 商业C ++静态分析产品可从供应商Klocwork , Gimpel和Coverity获得 。 还有一些不太知名的PVS-Studio分析仪。 虽然这样的产品很棒,但对于学生来说成本太高了,通常很难拿到试用版本。 另一种方法是find可在多个平台(Windows和Unix)上运行的开源C ++静态分析工具。 通过使用开源工具,可以对其进行修改以适应某些需求。 find工具并非易事。 以下是其他人发现或build议的C ++静态分析工具的简短列表。 C ++检查http://sf.net/projects/cppcheck/ Oink http://danielwilkerson.com/oink/index.html C和C ++代码计数器http://sourceforge.net/projects/cccc/ Splint(来自答案) Mozilla的猪肉(从答案)(这是现在的一部分Oink) Mozilla的Dehydra(来自答案) 使用选项-Weffc++ for GNU g ++(来自答案) 什么是任何人都知道,可以推荐的其他便携式开源C ++静态分析工具? 一些相关的链接。 Windows上的C ++静态代码分析工具 http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis http://www.chris-lott.org/resources/cmetrics/ 根据一组编码标准检查C / C ++源代码的免费工具? http://spinroot.com/static/ select一个静态代码分析工具

在Bash中将string转换为小写

有没有在bash中将string转换为小写string的方法? 例如,如果我有: a="Hi all" 我想将其转换为: "hi all"

实现vs扩展:何时使用? 有什么不同?

请用易于理解的语言或某篇文章的链接来解释。

对检查exception的情况

多年来,我一直无法得到一个像样的答案:为什么有些开发人员如此反对检查exception? 我经历了很多次的交谈,在博客上阅读,读了布鲁斯·艾克尔(Bruce Eckel)所说的话(我看到的第一个人对他们说的话)。 我目前正在写一些新的代码,并非常小心地注意我如何处理exception。 我试图看到“我们不喜欢被检查的例外”的观点,我仍然看不到它。 每一次谈话结束时都会有同样的问题没有答案…让我来设置它: 一般来说(从Java如何devise), 错误是不应该被捕获的事情(VM有一个花生过敏,有人扔了一jar花生) RuntimeException是程序员做错的事情(程序员离开数组的末尾) exception(RuntimeException除外)是指程序员无法控制的事情(在写入文件系统时磁盘已满,已达到进程的文件句柄限制,您无法再打开任何文件) Throwable只是所有exceptiontypes的父项。 我听到的一个共同的观点是,如果发生exception,那么所有开发人员将要做的就是退出程序。 我听到的另一个常见的观点是,检查exception使得重构代码变得更加困难。 对于“我要做的就是退出”的论点,我说即使你退出,你也需要显示一个合理的错误信息。 如果您只是在处理错误,那么当程序退出时,您的用户不会过于高兴,而没有明确指出原因。 对于“重构难以重构”的人群来说,这表明没有select适当的抽象层次。 IOException不应该声明方法抛出IOException,而应该将IOException转换为更适合正在发生的exception。 我没有用catch(Exception)(或者在某些情况下catch(Throwable)来包装Main以确保程序可以正常退出 – 但是我总是会捕获我需要的特定的exception。这样做可以让我,至less要显示一个合适的错误信息。 人们从不回答的问题是: 如果抛出RuntimeException子类而不是Exception子类,那么你怎么知道你应该捕获什么呢? 如果答案是catch Exception,那么你也像处理系统exception一样处理程序员错误。 这对我来说似乎是错误的。 如果你捕获Throwable,那么你正在以同样的方式处理系统exception和VM错误(等等)。 这对我来说似乎是错误的。 如果答案是你只捕获了你所知道的exception,那么你怎么知道抛出的是什么? 当程序员X抛出一个新的exception并忘记捕捉它时会发生什么? 这对我来说似乎非常危险。 我会说一个显示堆栈跟踪的程序是错误的。 那些不喜欢检查exception的人不会有这种感觉吗? 所以,如果你不喜欢检查的exception,你可以解释为什么不是和回答没有得到回答的问题吗? 编辑:我没有寻找什么时候使用任何模型的build议,我在寻找的是为什么人们从RuntimeException延伸,因为他们不喜欢从exception扩展和/或为什么他们捕获一个exception,然后重新抛出一个RuntimeException而不是添加抛出他们的方法。 我想了解不喜欢检查exception的动机。

JPA和Hibernate有什么区别?

我知道JPA 2是一个规范,Hibernate是一个ORM的工具。 另外,我明白Hibernate比JPA 2有更多的function。但是从实际的angular度来看,真正的区别是什么? 我有使用iBatis的经验,现在我试图学习Hibernate或JPA2。 我拿起了专业JPA2书,它一直提到“JPA提供者”。 例如: 如果您认为某项function应该标准化,那么您应该向JPA提供商说出要求 这使我困惑,所以我有几个问题: 单独使用JPA2可以通过简单地注释我的POJO来从DB获取数据 JPA2是否应该与“JPA Provider”(例如TopLink或Hibernate)一起使用? 如果是这样的话,与单独使用Hibernate相比,使用JPA2 + Hibernate有什么好处? 你能推荐一本好实用的JPA2书吗? “Pro JPA2”看起来更像是一本关于JPA2的圣经和参考书(直到后半部分才进入查询)。 是否有一本书对JPA2采取问题/解决scheme?

如果解释Python,什么是.pyc文件?

我已经了解到Python是一种解释型语言…但是,当我查看我的Python源代码时,我看到了Windows标识为“编译的Python文件”的.pyc文件。 这些进来了?

在github上托pipe一个Maven仓库

我有一个在github上开发的小型开源库。 我希望通过maven让其他开发者可以使用它,但是我不想运行我自己的Nexus服务器,而且由于它是一个分支,我不能轻易地将其部署到oss.sonatype.org。 我想要做的就是部署到github,以便其他人可以使用maven访问它。 什么是最好的方法来做到这一点?

Python中有多个构造函数的干净,pythonic方法是什么?

我找不到一个明确的答案。 AFAIK,在Python类中不能有多个__init__函数。 那么解决这个问题的好方法是什么? 假设我有一个叫做Cheese的类,它有number_of_holes属性。 我怎么能有两种方法来创build奶酪对象… 一个需要像这样的一些洞: parmesan = Cheese(num_holes = 15) 和一个不采取任何论据,只是随机number_of_holes属性: gouda = Cheese() 我只能想到一个方法来做到这一点,但似乎有点笨重: class Cheese(): def __init__(self, num_holes = 0): if (num_holes == 0): # randomize number_of_holes else: number_of_holes = num_holes 你说什么? 有没有更好的办法?

在一行中捕获多个exception(块除外)

我知道我可以这样做: try: # do something that may fail except: # do this if ANYTHING goes wrong 我也可以这样做: try: # do something that may fail except IDontLikeYouException: # say please except YouAreTooShortException: # stand on a ladder 但如果我想在两个不同的例外情况下做同样的事情,我现在能想到的最好的办法就是这样做: try: # do something that may fail except IDontLikeYouException: # say please except YouAreBeingMeanException: # say please 有什么办法可以做这样的事情吗(因为在这两个例外的行动是say […]