用于mojang的yggdrasil身份验证服务的python包装器。
yggdrasil-p的Python项目详细描述
yggdrasil py
对于mojang yggdrasil身份验证服务,sam carson的开源python 3.6+包装器。有关更多信息,请参考the documentation。
使用以下命令通过pypi安装:pip install yggdrasil-py
由于在引发Exception
时使用了f字符串,因此仅对python 3.6及更高版本支持此包装。您可以很容易地修改代码以使用%s
格式或.format()
函数,但是它们没有那么有效。
minecraft 1.6引入了一个名为yggdrasil的新身份验证方案,它完全取代了previous authentication system。mojang的另一个游戏scrolls也使用这种身份验证方法。
验证
使用用户的密码对其进行身份验证。
defauthenticate(username:str,password:str,agentName:str='Minecraft',clientToken:str=None,requestUser:str=False):
参数:
- 字符串(必需) 代理的用户名/mojang电子邮件(如果已迁移)
- 字符串(必需) 所用帐户的密码
- 字符串(可选)
代理,默认为
Minecraft
,也可以是Scrolls
- 字符串(可选) 客户机标识符,每个请求必须随机且相同
- 布尔值(可选)
如果设置为
True
也请求用户对象(默认为False
)
响应:
- 有关详细信息,请查看the documentation的authenticate部分。
示例:
fromyggdrasilimportauthenticateimportrandomrandomClientToken=random.randint(10000,99999)mc=authenticate('test@example.com','p455w0rd','Minecraft',randomClientToken,False)print(mc['accessToken'])
刷新
刷新有效的accessToken。它可以用来让用户在游戏会话之间保持登录状态,并且比将用户的密码存储在文件中更受欢迎。
defrefresh(accessToken:str,clientToken:str,requestUser:bool=False):
参数:
- 字符串(必需)
有效的
accessToken
,从authenticate()
获得
- 字符串(必需)
与最初用于获取
accessToken
的clientToken
相同 - 布尔值(可选)
如果设置为
True
也请求用户对象(默认为False
)
响应:
- 有关详细信息,请查看the documentation的刷新部分。
示例:
fromyggdrasilimportrefreshprint(refresh(mc['accessToken'],randomClientToken))# Note: invalidates inputted accessToken
验证
检查AccessToken是否可用于Minecraft服务器的身份验证。
defvalidate(accessToken:str,clientToken:str=None):
参数:
- 字符串(必需)
有效的
accessToken
,从authenticate()
获得
- 字符串(可选)
与最初用于获取
accessToken
的clientToken
相同
响应:
- 返回布尔值以确定
accessToken
是否有效(如果定义了clientToken
匹配)
示例:
fromyggdrasilimportvalidateprint(validate(mc['accessToken'],randomClientToken))
退出
使用帐户的用户名和密码使访问令牌无效。
defsignout(username:str,password:str):
参数:
- 字符串(必需) 代理的用户名/mojang电子邮件(如果已迁移)
- 字符串(必需) 所用帐户的密码
响应:
- 返回
True
,除非抛出错误
示例:
fromyggdrasilimportsignoutprint(signout('test@example.com','p455w0rd'))
无效
使用客户机/访问令牌对使访问令牌无效。
definvalidate(accessToken:str,clientToken:str):
参数:
- 字符串(必需)
有效的
accessToken
,从authenticate()
获得
- 字符串(必需)
与最初用于获取
accessToken
的clientToken
相同
响应:
- 返回
True
,除非抛出错误
示例:
fromyggdrasilimportinvalidateprint(signout(mc['accessToken'],randomClientToken))