WordPress常用函数add_theme_support()

允许WordPress主题插件给当前正在使用的主题注册一些特色功能,如果在主题中使用,应该将该函数写入 function.php文件中,如果是在插件中使用该函数,那它必须挂在钩子上(HOOK),如果是挂在钩子上,那他必须挂在after_setup_theme这个钩子上,如果挂在init钩子上执行时机将会太晚,以致部分特色功能将失效。

继续阅读…

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
等待完成

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