-
Notifications
You must be signed in to change notification settings - Fork 650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Circular Dependency #927
Comments
Same issue here :( I'm using the cookie login but it's not working anymore.
Update: Also It seems other folks are facing this issue as well, #478 (comment) |
Same |
Same. Ubuntu 20.04 update 1: uploaded log |
same here, looks like when we try to access /accounts/login, server will give 403, maybe they have upgraded firewall or something. Also not sure why when I try to login with third party I got password incorrect |
It's cloudflare, i printed out the response that I'm getting on some of the API calls and it says this: <p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>
</div>
<div class="cf-column">
<h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>
<p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p> full html here: https://pastebin.com/cTTAf8cb I got this a few months ago, I wasn't able to figure out a solution, it just ended up going away after a while |
How long did it take to work again? |
This is because if you try to use third party login, it will send a verify code to your mailbox. That's why it says password incorrect. |
Have you solved this problem |
I'm not sure, maybe a couple of days. I tried github sign in, linkedin signin, cookie signin, and all failed. I also tried this alternative: https://github.com/clearloop/leetcode-cli and I also had the exact same issue. Somehow Cloudflare is not letting me through. I also tried behind a VPN and also by manipulating my request headers so they are more similar to my browser's also no good. |
I also met the problem. is there anybody solve it? I can't sign in leetcode in vscode for ten days. |
same issue in Singapore, seems some day before, leetcode has been attacked and open some toggle. |
Same issue. Can it be resolved by any way? |
maintainer has not been active, last commit was 2 years ago |
find the root cause :) , leetcode website update http proto to allow HTTP/2, letcode-cli request still send http/1.1 request. |
|
Please berlinway, you're our only hope. This is so disheartening, I love this extension. At least I'm not crazy and not the only one with this issue. |
Even if we get a fix what do we do if the maintainer isn't around to accept a new pull request and create a new 18.2 release? Last release was almost 2 years ago. Will we have to patch locally? |
hmm I tried replacing the library with some ones that send http/2 requests, I'm still getting the same cloudflare 403 error page in response. Hopefully you get some better luck than me |
I managed to get cookie login working with fetch-h2. But the cookies on their own are not enough. I had to copy my headers over from my browser request as well. Probably worth noting that this issue is ultimately with the leetcode-cli package. Which if you have been logging in via cookies, we have been using a fork this whole time anyway (this one https://github.com/leetcode-tools/leetcode-cli) also might be dead.. 😂 Ill likely create a fork of leetcode-tools/leetcode-cli and try to get it merged. If not, it could just replace it. Im not sure if hard-coding the headers will be a long term solution (I have yet to test which are needed) but another solution might be to paste in the a curl request rather than the cookies alone. I've done 0 testing with the OAuth as i didn't trust passing my creds into a vscode prompt lol. Ill stay posted. |
ah interesting, I tried something similar with http2 and also copying my own headers, but I still hit a cloudflare page. It's heartening that someone got it working at least. |
Thanks for your diligent work. Please keep up posted and post any instructions/work-arounds (eg direct curl) once you find them. Thanks again. |
Leetcode has updated their cloudflare to block requests without some http headers For example I've modified plugin.makeOpts = function(url) {
const opts = {};
opts.url = url;
opts.headers = {};
opts.headers['Host'] = 'leetcode.com';
opts.headers['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0';
if (session.isLogin())
plugin.signOpts(opts, session.getUser());
return opts;
}; In my case, my plugin had to only include new dummy This is a bundle of headers that gets sent with every request made by my plugin and everything seems to be working fine ["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0",
["Referer"] = ("https://leetcode.%s"):format(config.domain),
["Origin"] = ("https://leetcode.%s/"):format(config.domain),
["Content-Type"] = "application/json",
["Accept"] = "application/json",
["Host"] = ("leetcode.%s"):format(config.domain),
["X-Requested-With"] = "XMLHttpRequest", |
I added those lines to /Users/myuser/.nvm/versions/node/v18.18.2/lib/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js but it doesn't seem to have any effect when I use the cookie login. |
For those who urgently need a leetcode IDE solution, this is an alternative. Edit: Changed a link. (Plugin MarketPlace -> Github Repository) |
@robpodosek I've only sent an example. Messing around with the headers I've sent I was able to login, open a question and run it. The problem is that |
@woung717 I seem to be having issues with that plugin as well, even if I do the cookie login. Maybe I'm doing something wrong... |
@robpodosek I forgot to say that it is not published in JetBrain Plugin Marketplace yet. You can download the updated version in the github repository. leetcode-editor-8.10.zip |
I fixed it to make it work. Leetcode changed all the endpoint requires x-csrftoken header. I compiled and uploaded full extension binary. You can download from here.
But the problem is that leetcode-cli, where I modified, is quite old and no longer seems to be maintained. (Last pull request merge was 2022) @jdneo Can you check the pull request? |
Has anyone got any workarounds to work in the meantime? |
@codevisualisations |
@robpodosek Do you still have the same issue with this?
|
@woung717 which release should I try now? I noticed some of the earlier ones linked were strikethrough'd. I can give it a shot tonight. |
@robpodosek Try Latest release of this link https://github.com/woung717/vscode-leetcode/releases. You can sign in using a Web Browser. |
@woung717 No matter which version of release I applied or which method to login (web browser or using cookies), it was giving the same |
try to fix with http2, but failed. I am not familiar with js. If someone familiar with js can help fix with http2 stream half fix branch |
I fixed HTTP headers related to csrftoken at the first release, and in second release, I changed sign-in process to browser method. But both releases still use 'rquest' library(only support HTTP 1.1) to get and submit leetcode data after sign-in. But it's weird since I don't have that issue in Korea. I think it might related with user's location and Cloudflare. Does Cloudflare force HTTP2 connection? |
it's easy to answer ur question, u can capture package from leetcode.com website, u will find most of request change to http2. ur solution maybe work temporary. finally ur solution won't work anymore, the root cause is http2 |
Holy crap this works! I loaded it from the vsix file and everything just loaded. I didn't even have to sign in anywhere (maybe because I was already signed into leetcode). You're a godsend thanks dude. |
That's the point I can't understand, I saw Leetcode website upgrade protocol to HTTP2 at the browser but still I can communicate using 'request' library (HTTP 1.1) in here. If website's HTTP2 requirement is the real problem, then I should have same error, but I don't. That's way I guess Cloudflare force it depends on the user's location. |
So as @StevenJohnston @jasoncyu said, there are two issues we need to address. The first is the HTTP header issue, which is about Leetcode changing their Cloudflare - HTTP header policy, and I fixed this in this branch by modifying some headers (thanks to @kawre).
Also, I changed the VSCode prompt login method to the browser method. This is not much related to the issue, but still the prompt ID/PW login method was not working so I fixed it too.
And the second, I suspect, is related to location and cloudflare/HTTP2, as not all users are experiencing the error after the first fix is applied. I can't reproduce the bug, so I can't fix and test it. To solve this issues completely, I think someone needs to change the HTTP client on one of my branch to support HTTP2. (Or you can fix the HTTP headers on your branch first and then replace HTTP client.) And again, I hope someone who own this project take care of this issue and see how we can patch it as this is the most popular leetcode extension in VSCode. Otherwise, we have to fork this project and maintain this and leetcode-cli both. |
Login issue is fixed by @woung717 's release, but got another issue:
|
@ryderfang Thank you for the report. Which Release/Endpoint(leetcode.com or leetcode.cn) do you use? Add: I forgot to update Fixed_Release's dependencies. I updated and uploaded binary again. Check this if you have used Fixed_Release and leetcode.com endpoint. |
I met a similar issue
|
@woung717 I used "leetcode.com", your latest release worked perfect! Great job, Thanks! |
Not my brightest work but heres a fix. https://github.com/StevenJohnston/leetcode-cli
|
@woung717 I tried your newest release, it works perfectly! thank you! |
Scratch that, it just started working and returning the Accepted submission result in the IDE. I didn't change anything on my end, must have been a leetcode thing. |
very nice! Less changes needed than I thought. can confirm it works for me |
@woung717 Okay so the 0.18.1 patch wasn't working (see my strikethrough'd comment above). Then it was working last night. Now it's back to not working, it's posting the code to leetcode when I check on the site, but in vscode it's showing 'undefined' again and saying that my session is expired despite still posting the code to leetcode. I'm also still getting the padLevels error.
edit: aaaand now it's working again and returning the result in VS Code. This seems to be an intermittent issue on the leetcode side. |
@robpodosek From my experience, if you access leetcode on the browsers and do something on this extension at the same time, session can be expired. So I submit and see code only on the extension. edit: I faced the same situation without any additional web browser session, and it occurred when I submitted code multiple times too quickly. I think it is a leetcode side problem. Maybe retry logic can be added but it would be not easy. |
@woung717 agreed. Being logged into leetcode in the browser at the same time doesn't seem to have any effect on the extension. It was working for me this morning, then I went onto the next problem and now I'm back to 'undefined'. I bet if I try again in a few hours it'll suddenly magically work. Seems like a roll of the dice. The cookie is working though because I can see my submission posted to leetcode although I'm getting an undefined response. edit: yeah it started working again after a few hours |
@woung717 can confirm the changes let me login and submit. thanks for your work. Anyone else who wants to install woung's patch just follow this guide https://www.youtube.com/watch?v=Z724l3mq2ag after downloading his latest release as a .vsix file: https://github.com/woung717/vscode-leetcode/releases |
I'm following this and it worked, detail steps :(:
then just open vscode and use extension normally - may need 1~2 seconds to sign in |
Can't log in anymore. Gives this error,
The text was updated successfully, but these errors were encountered: