Authlib 使用教程
总所周知 Minecraft 使用了被称为
Yggdrasil
但是在开启了离线模式的服务器中 也有着许多的身份认证方式 例如使用
AuthMe
CrazyLogin
但是这些插件对与Mod开发者并不友好 在某些使用了
FakePlayer
有没有解决这些问题的登陆方式呢 那当然是有的啦 这就是 authlib
原理
通过对
Java字节码
Mojang
Identity 和 Authlib 的 Agent 的区别
大体构建相同 都是使用自己的API Server重定向请求 Identity最主要的特点是开箱即用 这点比官方的Authlib要好 事实上我和Authlib作者聊过 在未来可能会规范API的路由 有可能 ~~(这个Flag立的)~~ 我会在未来的某个时候完全重写Identity也不一定 咳咳扯远了
使用
安装
前提环境是
Nodejs
MongoDB
Redis
注意 MongoDB 请不要在没有设置账户验证的情况下将端口开放到公网 就算是设定了账户认证最好也不要开放到公网 Redis在不开放到公网的情况下建议设置强密码加密
这时候就可以通过Git获取最新的源代码安装了
git clone -b reload https://github.com/Indexyz/Identity.git
npm install
// Configure your settings in config.js
npm run start
这时候访问你的localhost:3000 你就成功了
使用Docker安装
Docker运行应该是最方便的运行方式了 他可以方便快捷的管理每个服务
docker run -d -v /data/identity/db:/data/db --name MongoDB-Identity mongo
docker run -d --name Redis-Identity redis
docker run --link MongoDB-Identity:mongo --link Redis-Identiy:redis \
# -e ENV_KEY=ENV_VALUE
-p 80:3000 indexyz/identity
其中的
ENV_KEY
ENV_VALUE
和Authlib-agent进行配合
使用我修改过的 authlib-agent 修改其中的链接然后进行打包
git clone https://github.com/Indexyz/authlib-agent
nano configure.sh # 修改 AGENT_API_ROOT 和 AGENT_SKIN_DOMAINS
sh build.sh
运行之后你会在根目录下见到
authlibagent.jar