Login failed: BotAuthorization(BotAuthorization.byPassword(<ERASED>)) threw an exception during authorization process. See cause below.
2023-08-08 14:23:45 E/console: net.mamoe.mirai.network.BotAuthorizationException: BotAuthorization(BotAuthorization.byPassword(<ERASED>)) threw an exception during authorization process. See cause below.
net.mamoe.mirai.network.BotAuthorizationException: BotAuthorization(BotAuthorization.byPassword(<ERASED>)) threw an exception during authorization process. See cause below.
at net.mamoe.mirai.internal.network.components.SsoProcessorImpl.login(SsoProcessor.kt:263)
at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateConnecting$startState$2.invokeSuspend(CommonNetworkHandler.kt:247)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Suppressed: net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(782474680), code=45, title=禁止登录, message=登录失败,请前往QQ官网im.qq.com下载最新版QQ后重试,或通过问题反馈与我们联系。, errorInfo=)
at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:490)
at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl$doLogin$1.invokeSuspend(SsoProcessor.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
... 5 more
Caused by: [CIRCULAR REFERENCE: net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(782474680), code=45, title=禁止登录, message=登录失败,请前往QQ官网im.qq.com下载最新版QQ后重试,或通过问题反馈与我们联系。, errorInfo=)]
Loyakayivered 发布的帖子
-
登录风控,如何解决
-
验证无法通过之类的问题(被风控),在此处为您解答(全版本通用!)
验证无法通过?被风控了?
都过来试试这个,不能说100%有效,只能说是极少数不行要使用的东西:Mirai客户端和Google或者Edge(可能会用到手机来接收验证码,最好准备一台)
步骤一:先打开Google或者Edge,接着按F12(Mac用fn+F12)进入开发者模式,然后在上面有个图标(手机和pc的图标)点进去,在左边就会显示选择的操作设备的界面,接着在左边的界面上找到 [尺寸] 这个选项,然后选择Pixel 5,即可!(如果说你的Mirai登陆方式是PAD,那就在上面选择安卓之类的pad界面,Watch就没办法了,IPAD的也可以找到)
接着,在右边(开发者操作面板的上方技能选项中找到控制带选项,如果没有就点击 “》” - 网络 - 控制台)
步骤二:把在客户端上弹出来的窗口上所需要的地址copy的浏览器上的地址栏,跳转到了之后,再次看向”控制台“,此时你只需要一串代码(代码会放在下方),将这串代码copy到控制台上,按回车,控制台上就会显示true即可进行滑块操作,一般会重复一次(即需要进行两次操作)
步骤三:进行完上述操作后,浏览器上会弹出一个窗口,上面面有一串地址(就是你需要copy的ticket),把那条地址copy到Mirai弹出的窗口中的回答栏里,就可以通过风控验证啦!!!
步骤四(你可能会用到):那当然是手机验证码啦,你手机能收到验证码就行!!!
这是上述操作提到的代码,一定要仔细地复制,少一个都不行!!!
/* * Copyright 2019-2021 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ !(() => { let prompt = window.prompt; // jsbridge://CAPTCHA/onVerifyCAPTCHA?p=....#2 /** * @type {string} url * @return {boolean} */ function processUrl(url) { let prefix = "jsbridge://CAPTCHA/onVerifyCAPTCHA?p=" if (url.startsWith(prefix)) { let json = url.substring(prefix.length); for (let i = json.length; i--; i > 0) { let j = json.substr(0, i) console.log(j); try { let content = decodeURIComponent(j); let obj = JSON.parse(content); console.log(obj); window.miraiSeleniumComplete = content; prompt("MiraiSelenium - ticket", obj.ticket) break; } catch (ignore) { } } return true; } return false; } (() => { let desc = Object.getOwnPropertyDescriptor(Image.prototype, "src"); Object.defineProperty(Image.prototype, "src", { get: desc.get, set(v) { if (processUrl(v)) return; desc.set.call(this, v) } }) })(); (() => { let desc = Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype, "src"); Object.defineProperty(HTMLIFrameElement.prototype, "src", { get: desc.get, set(v) { if (processUrl(v)) return; desc.set.call(this, v) } }) })(); (() => { let UserAgent = "${MIRAI_SELENIUM-USERAGENT}"; if (UserAgent !== "${MIRAI_SELENIUM-USERAGENT}") { Object.defineProperty(Navigator.prototype, "userAgent", { get() { return UserAgent } }); document.querySelectorAll("script").forEach(it => it.remove()); } })(); })()
END
希望需要的人可以仔细阅读这篇文章,操作其实不复杂的,操作和看过一遍的人,都会背下来记住了呢,听说那些人都是聪明人!!!