2
0
mirror of https://github.com/ctrlcvs/xiaoyao-cvs-plugin.git synced 2025-01-22 13:51:10 +08:00

账号密码登录 改为手动验证

This commit is contained in:
ctrlcvs 2023-01-14 12:55:17 +08:00
parent bc7ad7b40e
commit 59c736a489
4 changed files with 34 additions and 31 deletions

View File

@ -63,22 +63,4 @@
* 如果出现了安装其中一个包导致另外的包出问题的请群里询问
* 需要完整的cookie内容要包含`login_ticket`不然是无法实现米游社签到的
* 获取到的cookies发送bot后请触发一次`#mys原神签到`指令以保存`stoken`实现自动签到**触发指令后无需多次获取cookies**
* `stoken`文件数据在**xiaoyao-cvs-plugin/data/yaml/**目录下
# 1.1.0
* 增加`#图鉴帮助`用于查看帮助命令
* 增加`#图鉴设置`用于设置图鉴相关功能
* 支持戳一戳返回体力
* 需要使用喵喵分支Yunzai以支持此能力如需切换可在Yunzai跟目录输入下方命令后更新重启
* `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot`
* 可通过`#图鉴设置` 关闭戳一戳
* 增加`体力推送方法`
*可通过修改init.js方法调用实现新版体力推送
*具体将**YunzaiApps.dailyNote.DailyNoteTask()**方法改为**YunzaiApps["plugin_xiaoyao-cvs-plugin"].DailyNoteTask()**
* 增加`#体力模板2`指定模板
*可通过`#体力模板列表`获取你当前已有的模板
*通过`#体力模板设置(模板)`来指定你需要的模板
*可以通过`#体力模板设置随机`来恢复之前的状态
* 增加`#**图鉴`用于查看逍遥全图鉴
* 增加`#图鉴更新`用于获取图鉴数据
* 增加`#图鉴插件(强制)更新`用于插件包更新
* `stoken`文件数据在**xiaoyao-cvs-plugin/data/yaml/**目录下

View File

@ -5,14 +5,15 @@ import mys from "../model/mhyTopUpLogin.js"
import Common from "../components/Common.js";
import { bindStoken } from './user.js'
import utils from '../model/mys/utils.js';
import {segment} from 'oicq'
const _path = process.cwd();
export const rule = {
qrCodeLogin: {
reg: `^#(扫码|二维码|辅助)登录$`,
reg: `^#(扫码|二维码|辅助)(登录|绑定|登陆)$`,
describe: "扫码登录"
},
UserPassMsg: {
reg: `^#(账号|密码)(密码)?登录$`,
reg: `^#(账号|密码)(密码)?(登录|绑定|登陆)$`,
describe: "账号密码登录"
},
UserPassLogin: {
@ -51,14 +52,20 @@ export async function qrCodeLogin(e, { render }) {
let Mys = new mys(e)
let res = await Mys.qrCodeLogin()
if (!res?.data) return false;
let r= await Common.render(`qrCode/index`, {
e._reply=e.reply
let sendMsg=[segment.at(e.user_id),'\n请扫码以完成绑定\n']
e.reply=(msg)=>{
sendMsg.push(msg)
}
await Common.render(`qrCode/index`, {
url: res.data.url
}, {
e,
render,
scale: 1.2,retMsgId: true
})
utils.recallMsg(e,r,60) //默认60有需要请自行修改
let r= await e._reply(sendMsg)
utils.recallMsg(e,r,30) //默认30有需要请自行修改
res = await Mys.GetQrCode(res.data.ticket)
if (!res) return true;
await bindSkCK(e,res)
@ -67,6 +74,9 @@ export async function qrCodeLogin(e, { render }) {
export async function UserPassMsg(e) {
if (!e.isPrivate) {
return false;
}
let Mys = new mys(e)
await Mys.UserPassMsg()
return true;

View File

@ -46,7 +46,7 @@ export default class mysTopLogin {
break
}
}
if (!res) {
if (!res?.data?.payload?.raw) {
await this.e.reply("验证超时", true)
return false
}
@ -61,7 +61,7 @@ export default class mysTopLogin {
async UserPassMsg() {
this.e.reply(this.sendMsgUserPassLogin)
this.e.reply(`请将账号密码用逗号隔开发送以完成绑定\n账号xxx@qq.com,密码xxxxx`)
this.e.reply(`请将账号密码用逗号隔开私聊发送以完成绑定\n账号xxx@qq.com,密码xxxxx`)
}
async UserPassLogin() {
let msg = this.e.msg.replace(/账号|密码||:/g, '').replace(/,|/, ',').split(',');
@ -76,19 +76,21 @@ export default class mysTopLogin {
if (res.retcode == -3101) {
Bot.logger.mark("[米哈游登录] 正在验证")
this.aigis_captcha_data = JSON.parse(res.aigis_data.data)
// let validate = await this.crack_geetest()
let validate = await this.user.getData("validate", this.aigis_captcha_data, false)
if (validate?.data?.validate) {
let vlData = await this.crack_geetest()
console.log(vlData)
// let validate = await this.user.getData("validate", this.aigis_captcha_data, false)
if (vlData?.geetest_validate) {
Bot.logger.mark("[米哈游登录] 验证成功")
} else {
Bot.logger.error("[米哈游登录] 验证失败")
this.e.reply('接口效验失败,请重新尝试~')
return false
}
let validate=vlData.geetest_validate
let aigis = res.aigis_data.session_id + ";" + Buffer.from(JSON.stringify({
geetest_challenge: validate?.data?.challenge,
geetest_seccode: validate?.data?.validate + "|jordan",
geetest_validate: validate?.data?.validate
geetest_challenge: vlData?.geetest_challenge,
geetest_seccode: validate + "|jordan",
geetest_validate: validate
})).toString("base64")
body.headers = {
'x-rpc-aigis': aigis,

View File

@ -11,11 +11,20 @@
.topTitle table{
margin: 0 auto;
}
.txt{
text-align: center;
color: red;
margin-top: 10px;
padding: 0 10px;
}
</style>
{{/block}}
{{block 'main'}}
<div class="topTitle" style="margin: 0 auth;">
</div>
<div class="txt">
免责声明请勿随意扫码谁触发谁扫码bot仅提供功能。<br/>如果恶意抢码导致账号出问题的请自行承担后果
</div>
<script src="{{_res_path}}/qrCode/js/jquery-1.10.2.min.js"></script>
<script src="{{_res_path}}/qrCode/js/jquery.qrcode.min.js"></script>