Выпуск "appcfg.py --oauth update ." с несколькими аккаунтами?

Я настроил OAuth для одной учетной записи my.first.email@gmail.com. Он отлично работает с Appengine app_ids, который я использую для этого аккаунта.

Однако когда я пытаюсь использовать его в приложении 'foo' для другой учетной записи (скажем, my.second.email@gmail.com), система выдает мне ошибку (вполне ожидаемо):

$ appcfg.py --oauth2 update .
10:09 AM Host: appengine.google.com
10:09 AM Application: foo; version: 100
10:09 AM Starting update of app: foo, version: 100
10:09 AM Getting current resource limits.
10:09 AM Scanning files on local disk.
Error 404: --- begin server output ---
This application does not exist (app_id=u'foo').

Можно ли использовать OAuth для ДВУХ (или более) учетных записей в App Engine? Я хотел бы иметь возможность использовать OAuth одновременно для обеих учетных записей, возможно, изменив команду CLI с двумя разными токенами.

Спасибо Риккардо

4 ответа

Решение

Используйте команду gcloud для переключения между несколькими учетными записями.

Добавление нового аккаунта:

gcloud auth login

завершить процесс входа в систему

Установка вышеуказанной учетной записи по умолчанию (или просто переключение учетных записей):

 gcloud config set account username@gmail.com

Попробуйте этот секретный параметр командной строки для appcfg.py:

appcfg.py --oauth2 --oauth2_credential_file=~/.appcfg_oauth2_tokens_personal update .

Нашли этот вариант, просмотрев /usr/local/google_appengine/google/appengine/tools/appcfg.py. Это должно позволить вам использовать разные учетные файлы для разных учетных записей. Возможно, вы захотите присвоить псевдониму команду, чтобы упростить ввод в вашей оболочке.

Чтобы Ryu_hayabusa предложение Ryu_hayabusa, добавьте его в свой .bashrc или же .bash_profile для более удобного переключения между аккаунтами:

function gcauth() { email="$@"; gcloud config set account $email; echo "Updated GCloud auth to $email"; }

# set up functions for specific email addresses:
function gcwork() { gcauth work@email.com; }
function gcperso() { gcauth personal@email.com; }

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

$ gcwork
Updated GCloud auth to work@email.com
$ gcperso
Updated GCloud auth to personal@email.com

Если вы хотите перейти от входа в систему клиента (который больше не поддерживается), просто обновите с помощью --oauth2, и ваше приложение будет развернуто.

python appcfg.py update --oauth2 /path/to/app

Использование входа в систему клиента приведет к следующей ошибке - Ошибка 404: --- начало вывода на сервер --- https://developers.google.com/accounts/docs/AuthForInstalledApps--- конец вывода на сервер ---

Другие вопросы по тегам