我正在尝试使用 MacOS 上的命令行实用程序创建一个 JSON Web 令牌 (JWT),并在签名部分遇到了障碍。
这个要点给了我很大的启发: https //gist.github.com/indrayam/dd47bf6eef849a57c07016c0036f5207
对于我的 JWT,我有标题:
{"alg":"HS256","typ":"JWT"}
Run Code Online (Sandbox Code Playgroud)
有效载荷:
{"email":"jordan@example.com"}
Run Code Online (Sandbox Code Playgroud)
我的 hmac 秘诀是:
bigsecretisveryhardtoguessbysneakypeopleright
Run Code Online (Sandbox Code Playgroud)
或者在 base64 中:
Ymlnc2VjcmV0aXN2ZXJ5aGFyZHRvZ3Vlc3NieXNuZWFreXBlb3BsZXJpZ2h0Cg==
Run Code Online (Sandbox Code Playgroud)
我发现如果我使用 base64 版本的密钥将所有这些输入到站点中,它会生成以下 JWT,该 JWT 成功地验证了我正在测试的站点:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImpvcmRhbkBleGFtcGxlLmNvbSJ9.C3MVjfmnul8dLNIgiv6Dt3jSefD07Y0QtDrOZ5oYSXo
Run Code Online (Sandbox Code Playgroud)
在 bash 我试过这个:
jwt_header=$(echo -n '{"alg":"HS256","typ":"JWT"}' | base64 | sed s/\+/-/g | sed 's/\//_/g' | sed -E s/=+$//)
payload=$(echo -n '{"email":"jordan@example.com"}' | base64 | sed s/\+/-/g |sed 's/\//_/g' | sed -E s/=+$//)
hmac_signature=$(echo -n "${jwt_header}.${payload}" | openssl dgst -sha256 -hmac "${key}" -binary | openssl base64 -e …Run Code Online (Sandbox Code Playgroud) 我开始尝试在 OS X Yosemite 中将我的一些 AppleScript 转换为 JavaScript,但我不明白我应该如何从应用程序访问枚举。例如 - Adium 的状态。
在 AppleScript 中:
tell application "Adium"
if status type of global status is offline then
log "offline"
end if
end tell
Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中,我不知道如何访问“离线”枚举:
if(Application('Adium').globalStatus.statusType == ?????) {
console.log("offline");
}
Run Code Online (Sandbox Code Playgroud)
我尝试过简单的事情,比如“离线”,但没有成功。所有这些都是错误:
Application('Adium').StatusType("offline"); // error
Application('Adium').StatusType.offline; // undefined
Application('Adium').StatusType.make({name:"offline"}); // error
Run Code Online (Sandbox Code Playgroud)
有人得到过这样的工作吗?
javascript macos applescript osx-yosemite-beta javascript-automation