На уроке мы узнаем что такое токен, посмотрим как формируется ключ для подключения к сайту. Получим токен из интернет - страницы, а так же напишем метод формирования ключа. Сможем самостоятельно, программно авторизоваться, используя метод формирования ключа.
*Самостоятельные задания: 1. Найти сайт с авторизацией 2. Произвести авторизацию самостоятельно, используя метод формирования ключа 3. Приложить скрин с полученным результатом
Дата отправки отчёта:
10 марта 2016 г.
Задание выполнено: за
1 час. 00 мин.
Чему научился:
узнал на конкретном примере, как может происходить авторизация с помощью токена
Что было сложным:
подобрать сайт где отработать урок
Комментарии:
Мне очень понравилось делать то, что было рассмотрено в данном уроке. Большое спасибо Кириллу за его старания. Этого оказалось действительно достаточно, чтобы самостоятельно разобраться с авторизацией токеном на dev.by/login. При этом name input с токеном здесь "authenticity_token" и в Form data передается больше параметров и с другими названиями, а именно utf8=%E2%9C%93 &authenticity_token= &user%5Blogin%5D= &user%5Bpassword%5D= &user%5Bremember_me%5D=0 &commit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8. Я знаю, что через % передаются символы, например %5B Это [ а % 5D это ] но тут получился интересный момент, т.к. мой пароль был на русском то он также должен передаваться в виде такой последовательности %89%D0%BA%D0%B2%D1%83%D0%BA12 и вот как её получить в C# не знаю, острой необходимости пока в этом нет, поэтому может быть когда-нибудь потом узнаю.
Отметил бы, что в уроке как-то размытым получился момент, что токен мы получаем в коде страницы именно до ввода логина и пароля, а только потом отправляем его в http запросе вместе с логином и паролем в момент авторизации. Просто из объяснения я этого как-то не услышал, а потом сам задумавшись понял.
И последнее. Стало интересно какие же вообще методы авторизации самые популярные и насколько актуален и часто используется такой как здесь с токеном. Простых и понятных ответов на эти вопросы не нашел, везде перечисляется тьма всего. Вобщем, будет сильно нужно, как-нибудь узнаю)
Тебе нужно получить строку: utf8=%E2%9C%93&authenticity_token=VgbAEm3jsJ%2BUaFXfT9uSLhNOBbnCWCXqRo3iHgmbucs%3D&user%5Blogin%5D=qwerty&user%5Bpassword%5D=poiuyt&user%5Bremember_me%5D=0&commit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8 если рассмотришь Form Data внимательнее то поймешь из чего состоят эти элементы utf8:✓ authenticity_token:VgbAEm3jsJ+UaFXfT9uSLhNOBbnCWCXqRo3iHgmbucs= user[login]:qwerty user[password]:ytrewq user[remember_me]:0 commit:Войти Просто их подставляй, а перевод в ASCII всё за тебя сделает сам. Я, правда, не знаю что делать с "галочкой", но надо пробовать, это обычный ключ, просто состоящий не только из токен-логин-пароль, но ещё и плюс utf8-remember-commit
P.S. Если не понял мой комментарий, попробуй пересмотреть урок ещё раз, может быть станет понятнее! Удачи!
Ой, я заметил, что отправил ответное сообщение никому, так что удалил, сейчас снова отправляю:
спасибо, коментарий я отлично понял. Правда я не очень понял, что понятно из моего отчета. Видимо, я не достаточно конкретно выразился или сейчас неверно понимаю, что побудило тебя написать мне его. Вобщем, из чего состоят элементы я прекрасно запомнил из урока, там ведь было показано, что хром может распрасить в более удобный вид. И я не говорил, что у меня что-то не работает. Я передавал все эти % в _data сразу и да, с System.Text.ASCIIEncoding.ASCII.GetBytes(_data) все работает. И имел ввиду, что если взять какой-нибудь textbox и с него считать текст(если он русский), то не знаю как превратить его в вид с % перед тем как положить в _data. И на всякий случай, добавлю, что любые русские символы с помощью System.Text.ASCIIEncoding.ASCII.GetBytes() превращаются в 63
Короче, интересное явление. Не собираясь думать об вышеуказанной теме, пришел сейчас вечером домой, сел за компьютер, случайно вспомнил о чем мы говорили, подумал что ведь у нас тот как будто процесс преобразования русских символов в URl, соответственно стало понятно на какую тему искать запросы. Найдя что-то от MSDN, понял что тут скорее всего подойдет что-то из методов класса WebUtility. Посмотрев, что он умеет в object browser я выбрал метод UrlEncode() и это оказалось именно то о чем я говорил что не знаю.
Научился: научился по token входить на сайт Трудности: Самое сложное найти сайт на котором есть такая К сожалению при выполнении домашнего задания, столкнулся что сайты практически не используют вход по token-у. Или может я то то не понимаю?