add sync module, move wechat auth logic to single file