У нас есть мультиплатформенное приложение (веб, Electron для настольных компьютеров, приложения для iOS и Android). При аутентификации через наше приложение Electron некоторые из наших пользователей перенаправляются на устаревший маршрут аутентификации (https://accounts.google.com/signin/oauth/legacy/approval), а не на стандартный маршрут аутентификации (https://accounts.google.com/signin/oauth/consent/approval).). Этот устаревший маршрут аутентификации не завершает авторизацию, поэтому наши пользователине могут войти в наше приложение. Это видят только наши пользователи Electron. Впервые мы увидели это 16 октября, и это стало более частым примерно 28 октября.
Это происходит, когда мы открываем окно электронного браузера ипосетите https://accounts.google.com/o/oauth2/v2/auth со стандартными параметрами. Если мы копируем тот же URL и параметры в окно браузера, не являющееся электронным, мы отправляемся по стандартному маршруту авторизации.
Вот соответствующая часть нашего электронногоКод Oauth:
const authParams = {
access_type: opts.offline ? 'offline' : undefined,
response_type: 'code id_token',
redirect_uri: 'http://localhost/authenticate',
scope: expandedScopes.join(' '),
client_id: xxxx,
prompt: 'consent',
login_hint: opts.email ? opts.email : undefined,
nonce
}
const authParamStr = queryStringify(authParams)
const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?${authParamStr}`
authWindow.loadURL(authUrl)
В результате получается, что вместо надлежащей аутентификации последний экран потока согласия Oauth представляет собой белый экран с заголовком «Approved Clicked». На веб-сайтах и других платформах вход в системузаканчивается правильно.