OsuSync / Sync

Sync your Live Channel's Danmaku or Comment to osu! IRC
https://github.com/Deliay/Sync
MIT License
167 stars 23 forks source link

Sync configuration #37

Closed Deliay closed 5 years ago

Deliay commented 6 years ago

A plug-ins for sync. Use command !savecfg or !loadcfg in irc bot to sync configuration of osu!.



Authorize user via bot irc, upload configuration via bot irc.
~~~we auto create a account using same username and password for user.~~~
we don't save any username and password in configuration.

A new APIs set will add to sync.mcbaka.com
```
sync.mcbaka.com/config/uploadConfiguration
- upload a user configuration

sync.mcbaka.com/config/fetchConfiguration
- download a user configuration
```

Upload step:
1. user send `!savecfg` to bot irc.
2. bot irc send message to `THIS plugins`(in sync)
3. THIS duplicate configuration in osu! folder, delete username and password
4. THIS upload the configuration which not include username and password
5. bot irc send the configuration to Sync Server vai API
6. user send `!loadcfg` to bot or execute `loadcfg` in Sync, will download Configuration via API.
Deliay commented 6 years ago

Password will hash again using SHA-1 and salt

MikiraSora commented 6 years ago

Type "upload_config <OsuName>" for uploading config.ini to server in Sync And then you can send a private message "?download_config" to Sync bot like "zx12zxz" and bot will give you a url with taking token for download config file.

Mother-Ship commented 6 years ago

安全这块。 服务器可以不存cfg文件中的密码字段,明确告诉用户我们不存储你的密码。

下载可以无所谓(继曲奇皮肤曲奇外设之外,真正的曲奇粉需要一份曲奇cfg(不)),上传这块得严格限定只能上传本人的配置,可以从内存中读取登陆的账号,也可以当cfg中有记住的密码时才允许上传。

然后记得处理边界情况,例如本地没有登陆用户时 不知道这份cfg属于谁,不给上传。

下载配置时需要获取当前用户的用户名,对配置文件进行重命名。或者直接覆盖到屙屎目录里。

Deliay commented 6 years ago

可以直接用irc bot来实现,因为能向bot发消息的人一定是通过bancho登陆的人。

所以可以认定向bot发irc消息的人的用户名真实性。

可以直接在bot irc中支持!savecfg!loadcfg功能

通过游戏中聊天来备份存档。

kj415j45 commented 6 years ago

仿 zinsser 风格:

上传: IRC: !login 由 IRC bot 分发一个token Sync: upload_config <token>

下载: Sync: download_config <username>

Mother-Ship commented 6 years ago

限定上传本人配置 用irc验证或者QQ验证也可以。QQ验证缺乏对全球玩家的支持,irc是个可行方案,但是略显麻烦,比较适用于Web环境的认证。除非在本地开端口起服务器监听,让bot回复类似于127.0.0.1:8080/verify?token=xxx的内容。但是我觉得当cfg里有记住的账号密码时,就可以认定操作者拥有这个账号的所有权了。

Deliay commented 6 years ago

@kj415j45 @Mother-Ship Sync不仅支持命令行命令,还是支持bot命令的,可以直接做成bot命令

!savecfg
!loadcfg

即可。

kj415j45 commented 6 years ago

Re: issuecomment-412490151

cfg内的帐号密码你无法鉴权,完全可以伪造

Mother-Ship commented 6 years ago

。当我没说,有一个问题,总会有好奇心旺盛的人改cfg覆盖别人配置的。 那就剩下irc和读内存两个方案。

是这样的...作为一个Default GUI用户,其实真不想对着黑框输命令。。