Telethon:它在哪里存储凭据?

Telethon: where does it store the credentials?

我正在使用Telethon连接到电报API,现在开发后我需要将项目api更改为主帐户。我想知道 telethon 将凭据存储在哪里,以便我可以删除它们并强制重新进行身份验证?

如果您传递 str 作为会话名称,它将在您 运行 脚本所在的同一目录中创建一个 str.session 文件。因此,如果您将传递给 TelegramClient 构造函数的字符串更改为不存在的字符串,它将无法登录。同样,重命名或删除该会话也可以摆脱该会话。您不应手动删除会话文件,而应调用 .log_out().

虽然与问题本身无关,但您也可以自由覆盖 Session class 以添加自定义 .save().load() 功能。 This issue shows when the format was changed from Pickle to JSON, and this one suggested the ability to actually override the Sessionclass。例如:

from telethon.tl import Session

class MySession(Session):
    pass  # Override load and save as you wish here

请注意,目前正在从 Session 迁移到 JsonSession,最终 JsonSession 将取代 Session(从 v0.10.1 开始) ,尽管如果您覆盖保存和加载,这不会影响您。