Я быстро проверил источник createCustomToken
в Admin SDK, и кажется, что время истечения одного часа (exp
) там жестко запрограммировано. Поэтому, если вы хотите изменить это, вам придется создать свой собственный форк Admin SDK.
Альтернативой может быть создание собственного пользовательского токена, как показано в . Создание пользовательских токенов с помощью сторонней библиотеки JWT . Таким образом, вы можете установить требование exp
на желаемое значение.
Третий вариант - использовать сеансовые куки , которые позволяют вам установить собственный интервал истечения срока действия.
И последний вариант, который я могу придумать, - это подать запрос функции в Admin SDK .
Allright, я глуп. Существует названный инструмент командной строки security
это делает просто это (и много других действий со связками ключей).
Использование в качестве примера:
security dump-keychain -d login.keychain
Это выведет все данные в login.keychain (связка ключей по умолчанию для пользователя) как простой текст, включая пароли. Все еще необходимо подтвердить доступ, но только однажды для каждого ключа, и это намного быстрее, чем (и не бросает странные ошибки при попытке получить доступ к определенным полям), использование AppleScript. И это не взлом.
Без -d
опция, это выведет все поля за исключением пароля.
Выведенные данные для ключа похожи на это (для интернет-ключа; ключи программы и сертификаты имеют другие поля, но формат является тем же):
keychain: "/Users/<username>/Library/Keychains/login.keychain"
class: "inet"
attributes:
0x00000007 <blob>="tech.slashdot.org (<username for this web login>)"
0x00000008 <blob>=<NULL>
"acct"<blob>="<username for this web login>"
"atyp"<blob>="form"
"cdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000"
"crtr"<uint32>=<NULL>
"cusi"<sint32>=<NULL>
"desc"<blob>="Kennwort des Web-Formulars"
"icmt"<blob>="default"
"invi"<sint32>=<NULL>
"mdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000"
"nega"<sint32>=<NULL>
"path"<blob>=<NULL>
"port"<uint32>=0x00000000
"prot"<blob>=<NULL>
"ptcl"<uint32>="http"
"scrp"<sint32>=<NULL>
"sdmn"<blob>=<NULL>
"srvr"<blob>="tech.slashdot.org"
"type"<uint32>=<NULL>
data:
"<the plaintext password for this key>"