Los inicios de sesión de Google generalmente han favorecido a los navegadores principales y, por lo tanto, hasta ahora, para que funcione en Electron, debe cambiar la cadena userAgent a Chrome. Sin embargo, después de recibir informes de los usuarios la semana pasada, descubrí que esto ya no funciona .
Abriendo una URL de inicio de sesión de Google usando el siguiente código:
const win = new BrowserWindow({ height: 600, width: 800 }) const client = new google.auth.OAuth2( clientId, clientSecret, "urn:ietf:wg:oauth:2.0:oob" ) const url = client.generateAuthUrl({ access_type: "offline", scope: scopes }) win.loadURL(url, { userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52" }) Esto todavía produce el error This browser or app may not be secure e impide que funcione el inicio de sesión de Google.
Espero que haya una solución para que el inicio de sesión de Google vuelva a funcionar en Electron.
Puede haber algunos trucos para solucionar esto, pero lo más probable es que Google los bloquee eventualmente. Dieron avisos sobre esto en el blog de desarrolladores de Google:
La solución adecuada es usar el navegador predeterminado del usuario para la interfaz de usuario del flujo de autorización de OAuth2 (en lugar de una ventana emergente personalizada de WebView), según lo requiere "RFC8252: OAuth 2.0 para aplicaciones nativas" :
Las solicitudes de autorización de OAuth 2.0 de aplicaciones nativas solo deben realizarse a través de agentes de usuario externos, principalmente el navegador del usuario. Esta especificación detalla las razones de seguridad y usabilidad por las que esto es así y cómo las aplicaciones nativas y los servidores de autorización pueden implementar esta mejor práctica.
Una buena razón para esto es que es posible que el usuario ya esté autenticado con Google en su navegador predeterminado, por lo que no tiene que ingresar la contraseña / pasar por el flujo de MFA una vez más. Solo verían la solicitud de autorización para su aplicación específica, que pueden decidir aprobar o rechazar.
Otra buena razón es que podrían usar un administrador de contraseñas de su elección, que probablemente funcione con su navegador predeterminado pero no con su aplicación Electron.