Windows Terminal添加右键菜单

前言
关于Windows Terminal的配置,后面有空再讲。
今天要说的是如何实现在当前目录打开Windows Terminal,类似Mac上的Go2Shell效果。

关于Windows Terminal的配置,后面有空再讲。
今天要说的是如何实现在当前目录打开Windows Terminal,类似Mac上的Go2Shell效果。


JVM思维导图

使用hexo构建博客大概是5、6年的事了,在此之前一直使用wordpress来搭建个人的博客。
而早些年博客系统仿佛也只有wordpress,当你想要搭建个人博客时,你只会得到一个答案,那就是wordpress。
wordpress是如此强大,丰富的扩展,强大的管理后台,它能提供我们需要的一些。
毫无疑问,这就是我们需要的,何况全世界的人都在使用它。
然而,当面对繁杂而厚重的wordpress时,我们意识到我们需要的只是一个简单的,优雅的,能使用markdown书写的系统。

关于手机端登录的代码,这里不做多余介绍,我们看下登录成功后, Apple返回给手机端的一些参数
open var user: String { get }
open var state: String? { get }
open var authorizedScopes: [ASAuthorization.Scope] { get }
open var authorizationCode: Data? { get }
open var identityToken: Data? { get }
open var email: String? { get }
open var fullName: PersonNameComponents? { get }
open var realUserStatus: ASUserDetectionStatus
这里初步登录成功,从 Apple 拿到 user 、 identityToken 、 authorizationCode 等相关信息。
identityToken 是一个 JWT 格式的加密数据 (JWT相关知识介绍 JSON Web Token
),我们通过如下代码拿到 header 和 payload 中的数据
guard let _ = identityToken else { return }
let token = String(data: identityToken!, encoding: .utf8)
let arr = token?.components(separatedBy: ".")
let header = arr?[0]
let payload = arr?[1]
header 及 payload 均是base64编码的字符串,通过如下代码进行解码
注意:swift中需要用NSData进行转换,用Data进行转换会失败
// 这里为了方便,均采用 ! 强行解包
let headerData = NSData(base64EncodedString: payload!)
let decodeHeader = String(data: (headerData! as Data), encoding: .utf8)
let payloadData = NSData(base64EncodedString: payload!)
let decodePayload = String(data: (payloadData! as Data), encoding: .utf8)
得到结果如下
header:
{"kid":"AIDOPK1","alg":"RS256"}
payload:
{"iss":"https://appleid.apple.com","aud":"这个是你的app的bundle identifier","exp":1567482337,"iat":1567481737,"sub":"这个字段和上面获取的 user 字段是完全一样的","c_hash":"8KDzfalU5kygg5zxXiX7dA","auth_time":1567481737}
通过如上操作,我们可以获取到 payload 中的 sub 字段,然后与上面的 user 字段做一个对比,如果对比通过,则第一步完成