JWT入门介绍

JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑(compact)自包含(self-contained)的方式,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对对JWT进行签名。

尽管可以对JWT进行加密以在各方之间提供保密性,但我们将重点关注已签名的令牌。签名的令牌可以验证其中包含的声明的完整性,而加密的令牌则隐藏其他方的声明。当使用公钥/私钥对对令牌进行签名时,签名还证明只有持有私钥的一方才是对其进行签名的一方。

通俗的讲,JWT是一种安全标准。基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息的合法性;如果验证成功,会产生并返回一个Token(令牌),用户可以使用这个Token访问服务器上受保护的资源。

继续阅读…

NPM gyp: No Xcode or CLT version detected!

在mac下使用npm安装包的时候,老是报这个错误,具体信息如下:

node-gyp rebuild

No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/sobird/.nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command "/Users/sobird/.nvm/versions/node/v8.12.0/bin/node" "/Users/sobird/.nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/sobird/Meituan/Oasis_FE/node_modules/fsevents
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

个人经验,发现是每次升级xcode后,都会报这个错误,为避免再次出现该错误,本文记录下执行操作

终端执行下面命令

xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

如果出现以上结果,说明xcode-select --install命令不好使,放大招,执行下面的命令:

sudo rm -rf $(xcode-select -print-path)
xcode-select --install
等待完成

可能执行的时间比较长,耐心等待即可。

Oh My Zsh初体验

macOS升级到Catalina(10.15)后,终端默认的shell变成了zsh,结果发现之前配置的Git命令自动补齐功能无法使用,在搜寻其他替代解决方案时发现了Oh My Zsh,本文主要记录一下Oh My Zsh的简单使用,大神忽略。

继续阅读…

macOS自定义本地化文件夹名

默认情况下macOS用户目录下存在以下几个目录:Applications、Desktop、Documents、Downloads、Library、Movies、Music、Pictures、Public。我们发现虽然目录英文的,但在“访达”显示的却是中文目录,那么这是如何做到呢?如果我想将自己创建的英文目录名显示为中文目录,又该如何操作?

本文以 Meituan->美团 为例介绍下本地化文件夹名的方法。

注:虽然网上教程都教你如此操作,但本人在macOS Catalina 10.15 环境下按此操作并未生效成功,故本教程暂不建议大家尝试,如果你尝试成功,或者你知道有哪些坑的话,可以在此文评论留言说明。

继续阅读…

HTTPS原理全解析

HTTPS是超文本传输安全协议,是基于SSL/TLS层以安全为目标的HTTP通道。HTTPS可以对所有的HTTP请求和响应数据在发送到网络之前进行加密。

HTTPS是位于安全层之上的HTTP
继续阅读…