minecraft-linux / mcpelauncher-manifest

The main repository for the Linux and Mac OS Bedrock edition Minecraft launcher.
https://minecraft-linux.github.io
GNU General Public License v3.0
966 stars 99 forks source link

Google prevents login #140

Open Charadon opened 5 years ago

Charadon commented 5 years ago

After putting in e-mail, google gives the following message:

You are trying to sign in from a browser or app that doesn't allow us to keep your account secure. Try using a different browser.

I'm on Debian 10 Buster

itsyoshio commented 5 years ago

+1, i'm on arch linux if that's relevant

w3bb commented 5 years ago

+1 Getting this on Gentoo, with and without the appimage.

algometric commented 5 years ago

+1, AppImage on Arch using LD_PRELOAD=/usr/lib/libnss3.so

mikaelprag commented 5 years ago

+1, AppImage on Mint 19.2.

Mhowser commented 5 years ago

From the Discord help server image

MCMrARM commented 5 years ago

oh wait actually, isn't this the wonderful recaptchav3

MCMrARM commented 5 years ago

Seriously though, can we please make recaptchav3 illegal by law, I have no idea how to tackle this right now, seriously, fuck Google.

w3bb commented 5 years ago

Maybe open a browser for authorization? Or maybe have some way to forward the captcha?

Mhowser commented 5 years ago

I'm sure recaptchaV3 must violate some GPDR laws.

w3bb commented 5 years ago

I'm sure it does but do they really care? They can pay the fines.

Unkorneglosk commented 5 years ago

Same for me on Ubuntu MATE 19.04 amd64. I think it's this beautiful ReCaptcha dumb bot. I do agree with @w3bb to do like Discord app: openning the users browser for authorization.

MCMrARM commented 5 years ago

It's not feasible without adding a browser extension.

Charadon commented 5 years ago

To be honest, I wouldn't mind installing a browser extension if it came down to it.

w3bb commented 5 years ago

As long as it works on Firefox it's better than not being able to play at all. Possibly a userscript?

beckadamtheinventor commented 5 years ago

+1 A friend of mine has the same issue. Built from source, if that makes a difference.

Mhowser commented 5 years ago

Wouldn't something like xdg-open work?

On Tue, Aug 27, 2019, 4:24 PM beckadamtheinventor notifications@github.com wrote:

+1 A friend of mine has the same issue. Built from source, if that makes a difference.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/minecraft-linux/mcpelauncher-manifest/issues/140?email_source=notifications&email_token=AFYTD5DNJSO5AQVRP75GRXDQGWZR5A5CNFSM4IPHROZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5JNAIQ#issuecomment-525520930, or mute the thread https://github.com/notifications/unsubscribe-auth/AFYTD5B5RMI7ZXV3BCGMQCLQGWZR5ANCNFSM4IPHROZA .

MCMrARM commented 5 years ago

hmm Chrome/Chromium has that automation mode puppeter uses that I could use as well afaik. Wonder if Firefox has something similar.

It should be enough to be able to inject a script onto the webpage that would connect over a websocket back to me.

w3bb commented 5 years ago

Geckodriver is the equivalent for Firefox iirc. If all you need is Javascript then I'd take a look at using Violentmonkey https://violentmonkey.github.io/ or something similar, since that's cross platform and works for all major browsers.

On Wed, Aug 28, 2019 at 8:02 AM MCMrARM notifications@github.com wrote:

hmm Chrome/Chromium has that automation mode puppeter uses that I could use as well afaik. Wonder if Firefox has something similar.

It should be enough to be able to inject a script onto the webpage that would connect over a websocket back to me.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/minecraft-linux/mcpelauncher-manifest/issues/140?email_source=notifications&email_token=AIEGR7XA33P3NGFN73HQGETQGZSNTA5CNFSM4IPHROZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5K4CJA#issuecomment-525713700, or mute the thread https://github.com/notifications/unsubscribe-auth/AIEGR7TAAF2PIQM273SC73DQGZSNTANCNFSM4IPHROZA .

-- In case you're wondering, nodejs is kind of awesome. This is coming from a C++ dude. All but electronjs.

MCMrARM commented 5 years ago

Either way, the following flow has to be done to replace the playdl-signin-ui: 0) Have the following JS available:

(function() {
    window.mm = {};
    window.mm.showView = function() {
        // Forward this to code, this means we're ready to show the login window; optional; can be removed
    };
    window.mm.setAccountIdentifier = function(identifer) {
        // Forward this to code, this is the email we need to save
    };
    window.mm.log = function(what) {
        console.log(what);
    };

1) Open https://accounts.google.com/embedded/setup/v2/android?source=com.android.settings&xoauth_display_name=Android%20Phone&canFrp=1&canSk=1&lang=en&langCountry=en_us&hl=en-US&cc=us 2) Once the URL has #close, the flow is finished, retrieve the following cookies: oauth_token and user_id. My code also requires the account identifier you can get by injecting the JS above.

If anyone has any ideas how to do it nicely using an existing browser, let me know.

donmor commented 5 years ago

Either way, the following flow has to be done to replace the playdl-signin-ui: 0) Have the following JS available:

(function() {
    window.mm = {};
    window.mm.showView = function() {
        // Forward this to code, this means we're ready to show the login window; optional; can be removed
    };
    window.mm.setAccountIdentifier = function(identifer) {
        // Forward this to code, this is the email we need to save
    };
    window.mm.log = function(what) {
        console.log(what);
    };
  1. Open https://accounts.google.com/embedded/setup/v2/android?source=com.android.settings&xoauth_display_name=Android%20Phone&canFrp=1&canSk=1&lang=en&langCountry=en_us&hl=en-US&cc=us
  2. Once the URL has #close, the flow is finished, retrieve the following cookies: oauth_token and user_id. My code also requires the account identifier you can get by injecting the JS above.

If anyone has any ideas how to do it nicely using an existing browser, let me know.

I managed to get the two cookies from chromium by accessing this url. image I signed in here and found the two in the button at the start of the address bar. Is there any way to import them into the launcher?