Как отправить приглашение = согласие через ueberauth_google
Когда пользователь уже дал согласие на приложение (например, когда пользователь отказывается от создания учетной записи во время первоначальной попытки, а затем повторяет попытку), Google не будет повторно запрашивать согласие, если prompt=consent
пройдено (см. документацию). Без запроса согласия Google не будет предоставлять токен обновления для вызывающего сервера. А без маркера обновления сервер не может взаимодействовать с ресурсами пользователя (например, отправлять электронную почту от имени пользователя).
У ueberauth_google есть механизм для настройки approval_prompt
, но это другой параметр, чем prompt
, Есть ли способ отправить prompt=consent
используя ueberauth_google? (Обратите внимание, если я добавлю %26prompt%3Dconsent
на URL-адрес, на который меня отправляет ueberauth_google, Google запрашивает у меня, и наш сервер получает токен обновления.)
1 ответ
В вашем config.exs вам нужно добавить приглашение: "согласие"
config :ueberauth, Ueberauth,
providers: [
google:
{Ueberauth.Strategy.Google,
[
access_type: "offline",
prompt: "consent",
default_scope:
"https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/userinfo.profile"
]}
]
Но это еще не было объединено с ueberauth_google. В настоящее время вы можете перейти по адресу: deps/ueberauth_google/lib/ueberauth/ стратегии /google.ex
И отредактируйте эту строку вручную