Google аутентификация всегда запрашивает авторизацию, несмотря на то, что подсказка не имеет значения - PullRequest
0 голосов
/ 29 августа 2018

После подключения пользователя из Google OAuth, когда он желает повторно подключиться во время следующего сеанса, требующего выбора его учетной записи Google, снова запрашивается разрешение.

Согласно документации поведение параметра prompt , отвечающего за запросы авторизации, выглядит следующим образом:

Если значение не указано и пользователь не авторизован ранее доступ, то пользователю показывается экран согласия.

Таким образом, пользователю не нужно переупорядочивать свое согласие (при проверке приложение присутствует в моих полномочиях).

Единственный предусмотренный ответ был один на этот вопрос: при входе через Google всегда запрашивается согласие пользователя

Потому что я также работаю локально без безопасного HTTP, но он предполагает, что существует политика cookie, а это не так.

URL для генерации кода

/**
 * Create a new OAuth2Client with the credentials previously loads
 */
private getOAuth2() : OAuth2Client {
    return new OAuth2(
        this.credentials.client_secret,
        this.credentials.client_id,
        this.credentials.redirect_uris[0]
    );
}

/**
 * Create connection URL for the given scopes
 * @param scopes
 */
public url(scopes: Array<string>) : string {
    return this.client.generateAuthUrl({
            access_type: "offline",
            scope: scopes
    });
}



// The scope used to generate URL is 'https://www.googleapis.com/auth/youtube.readonly'

// this.client refer to a client which is load by getOAuth2
// and use only for the generation of URL's.

Когда пользователь регистрируется во второй раз, чтобы получить потерянный токен обновления, он или она не обязаны снова давать согласие:

enter image description here

И это проблема, которая возникает.

1 Ответ

0 голосов
/ 24 сентября 2018

TBH, я не поняла вашу проблему ясно. Но я уверен, что вы должны иметь дело с двумя разными токенами. Поскольку это OAuth, сначала вы получите токен доступа от Google после успешной аутентификации пользователя.

Вы должны использовать этот токен доступа для получения информации о пользователях от Google. Но по умолчанию токен доступа имеет некоторое время истечения, после которого пользователь должен повторно авторизовать ваше приложение. Я подозреваю, что так происходит в вашем случае.

Вы можете обновить свой токен доступа, используя токен обновления, который вы получите, когда получите согласие пользователя.

Вы можете получить подробную информацию в этом посте, написанном мной, https://www.syncwithtech.org/authorizing-google-apis/

Надеюсь, это может вам как-то помочь.

...