2011-07-23 2 views
0

Я создаю API для своего сайта, и у меня возникла проблема. Я хочу, чтобы мои пользователи могли «войти» в свою учетную запись, используя API, но мой сайт не использует систему имени пользователя и пароля, использует API Twitter и cookie/session для аутентификации. Я пытаюсь думать о том, как лучше пользователям отправлять данные с помощью API без ущерба для безопасности. В основном мне нужен способ убедиться, что пользователь - это тот, кто, как они говорят, из приложения.Аутентификация пользователей для доступа к записи через API

Одна из идей, о которых я думал, заключалась в том, чтобы пользователь создал пароль, который они будут использовать для «входа в систему» ​​с помощью метода в API. Отправка правильных учетных данных (имя пользователя Twitter и их выбранного пароля) на этот метод приведет к возврату маркера, который будет связан с их учетной записью. Чтобы пойти еще дальше, я мог бы сначала установить маркер (по существу, ключ API) как неактивный, и API также вернет секретный код, который также будет связан с учетной записью пользователя. Затем пользователь должен будет войти в свой профиль на сайте и ввести секретный код, который активирует их токен и позволяет им публиковать с использованием API.

Я хочу сделать его простым для пользователя, но я не хочу потенциально нарушать безопасность другого пользователя. Может ли кто-нибудь предложить лучший способ сделать что-то подобное или сообщить мне, будет ли способ, который я предложил, хорошим способом сделать это?

+0

Как вы обычно решаете, какой пользователь является? Вы полностью полагаетесь на Oauth Twitter? – deceze

+0

Сначала я проверяю наличие куки-файла с его значением сеанса, если файл cookie не существует, пользователь не вошел в систему. Если он существует, я проверяю таблицу сеансов в базе данных для соответствия, если совпадение не найдено, пользователь не вошел в систему, если существует совпадение, я проверяю некоторые другие вещи и получаю информацию пользователя, связанную с сеансом, и пользователь вошел в систему. В любом из событий, которые пользователь не вошедшие в систему, я представляю им ссылку для входа, которая перенаправляет их на сервер аутентификации Twitter и отправляет мне обратно значение, позволяющее мне создать сеанс и войти в систему. – HaLo2FrEeEk

ответ

0

Аутентификация/авторизация, IMO - это отдельный прикладной уровень, который необходимо создать. Его общее название: ACL.

Связанный с вашей недавней проблемой, я предлагаю либо использовать реализацию oAuth, либо некоторую аутентификацию HTTP для этого.

Смежные вопросы