Я просто взял Google API сегодня, чтобы позволить некоторым пользователям нашего сайта загружать видео на нашу собственную организационную учетную запись YouTube. Я не хочу, чтобы наши пользователи знали наше имя пользователя и пароль, а скорее дали им опцию, если они хотят загрузить видео на YouTube или нет. Если они принимают решение сделать это, они проверяют флажок и поражают кнопку отправки.
Я продолжаю видеть, и в Разработчиках ведут тот ClientLogin, чтобы мне похож на наилучший вариант реализовать то, что я хочу сделать, не хорошая идея для аутентификации пользователя в сети applicaitons. "AuthSub для веб-приложений", кажется, не лучший механизм для того, что я хочу реализовать!
Какие-либо идеи о том, что сделать?
Спасибо
Поиграв с Google API и API других поставщиков видеоуслуг, я многое узнал об аутентификации. oAuth и AuthSub - это два метода, которые Google использует для аутентификации сторонних веб-приложений в учетной записи пользователя.
Поначалу процесс может показаться запутанным, но как только вы его поймете, это не так уж плохо. На следующем изображении показан процесс AuthSub.
http://code.google.com/apis/accounts/docs/AuthSub.html#AuthProcess
Когда вы запрашиваете аутентификацию, и пользователь входит в свою учетную запись Google, прежде чем он / она предоставляет вашему приложению разрешение на выполнение каких-либо действий в своей учетной записи, и если ваш домен не был зарегистрирован в Google, пользователь получит неприятное красное поле, говорящее им быть осторожными, потому что приложение, к которому они собираются предоставить доступ, не зарегистрировано у них .
Преимущества этих методов перед старыми именем пользователя и паролем (на мой взгляд) следующие:
С учетом всего вышесказанного, я думаю, вы можете понять, почему было бы плохой идеей использовать имя пользователя и пароли (что и делает ClientLogin) для подключения к учетной записи пользователя. Другие методы аутентификации позволяют делать то же самое (запрашивать доступ) и добавляют кучу преимуществ.
Код о том, как аутентифицировать пользователей с помощью AuthSub, можно найти здесь, это в значительной степени plug and play. просто убедитесь, что сохранили $ _SESSION ['sessionToken'] в более постоянном месте, таком как БД.
http://code.google.com/apis/youtube/2.0/developers_guide_php.html#AuthSub_for_Web_Applications
У меня была та же проблема, и в итоге я использовал ClientLogin. Если вы не хотите, чтобы ваши пользователи видели какую-либо часть процесса входа в систему, это подойдет.
Я не знаю, есть ли лучший способ сделать это с помощью AuthSub или других методов аутентификации.
ClientLogin не является предпочтительным механизмом здесь, потому что ваше приложение вынуждено обрабатывать учетные данные для входа для пользователя. Если идентификация пользователя должна быть установлена дольше, чем сеанс, вы будете вынуждены сохранить учетные данные, и это не идеально - компрометация вашего сервера приведет к компрометации для пользователей Google. Таким образом, ClientLogin не подходит для вашего приложения.
Вы смотрели Google OAuth ? Он довольно элегантно решает проблему обработки паролей и является установленным стандартом.