假设我编写了一个带有一些离散函数的 POSH 脚本。
一个函数被调用Login
,它返回一个身份验证令牌(字符串类型),另一个使用该令牌调用 API。如果已经执行了 a 并且获得了身份验证令牌,我不想Login
在用户每次调用 API 时调用。Login
令牌仅持续一个会话 - 它不需要持久化到数据库/磁盘等。
我在哪里维护身份验证令牌?是否由用户将令牌存储在他们的 POSH 会话中?无论如何我可以在我的脚本中为他们做到这一点吗?
假设我编写了一个带有一些离散函数的 POSH 脚本。
一个函数被调用Login
,它返回一个身份验证令牌(字符串类型),另一个使用该令牌调用 API。如果已经执行了 a 并且获得了身份验证令牌,我不想Login
在用户每次调用 API 时调用。Login
令牌仅持续一个会话 - 它不需要持久化到数据库/磁盘等。
我在哪里维护身份验证令牌?是否由用户将令牌存储在他们的 POSH 会话中?无论如何我可以在我的脚本中为他们做到这一点吗?
您可以使用像全局变量这样简单的东西。
$global:MyToken = 'SomeToken'
但更灵活的是做一些类似远程会话的事情。会话不仅仅是一个字符串,而是一个具有所需属性或方法的类。而且由于它是一个类,其他命令可以看到它是一个会话,而不仅仅是一个字符串。有了它,你可以做这样的事情:
$session1 = New-MySession -Name Jimmy -Password Secret
$session2 = New-MySession -Name Bob -Password 1234
MyAction -Session $session1
MyOtherAction -Session $session1
MyOtherAction -Session $session2
MyYetAnotherAction -Session $session1, $session2
Export-Session $session1 C:\temp\somefile.ses