Как передать данные для входа на веб-сайт напрямую из UIWebView без необходимости повторного входа в систему?

Я хочу открыть какой-нибудь веб-сайт в своем приложении для iphone с помощью UIWebView. Веб-сайт требует имени пользователя и пароля, и у меня есть эти имя пользователя и пароль.

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

Я просто хочу избавиться от входа на веб-сайт, поскольку пользователи уже ввели данные для входа, когда открывают приложение. Это избыточно.

Любая помощь приветствуется.

Спасибо.


person Dinesh    schedule 31.03.2011    source источник


Ответы (2)


Я нашел способ решить эту проблему с помощью Objective-C. Мы можем использовать NSURLConnection для публикации формы.

Код:

 NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://mobile.twitter.com/session"]
                                                 cachePolicy:NSURLRequestUseProtocolCachePolicy                                              timeoutInterval:60.0];

[theRequest setHTTPMethod:@"POST"];

NSString *postString = [NSString stringWithFormat:@"authenticity_token=%@&username=%@&password=%@",@"9b670208fd22850ec791",@"urUsername",@"urPWD"];
[theRequest setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    receivedData = [[NSMutableData data] retain];
} else {
    // Inform the user that the connection failed.
}

Спросите меня, если вам нужна дополнительная информация.

person Dinesh    schedule 11.04.2011
comment
Разве это не проблема, что имя пользователя и пароль передаются на сервер туда и обратно? разве не так-то просто взломать их, чтобы поймать их? - person Lior Frenkel; 27.04.2011
comment
Да, я понял, что это может быть проблема безопасности. Так ты хоть представляешь, как я могу сделать это лучше? - person Dinesh; 01.07.2011
comment
Так браузер в любом случае отправит запрос, поэтому применяются стандартные методы обеспечения безопасности. Используйте дайджест-аутентификацию или ssl для всего соединения. - person Matt; 03.07.2011
comment
Мэтт, не могли бы вы сказать мне, как я могу сохранить сеанс / файл cookie или сохранить состояние соединения для этого запроса, чтобы мне не приходилось входить на веб-сайт каждый раз, когда я хочу получить доступ к странице. - person Dinesh; 03.08.2011
comment
Требуется ли для этого код на стороне сервера или все это на стороне собственного приложения? - person Daniel; 06.12.2016

Если вы разработали веб-сайт самостоятельно, почему бы не создать еще одну точку входа, где вы будете безопасно передавать имя пользователя / пароль на страницу с помощью ssl? Если SSL не доступен, вы можете сгенерировать токен в приложении и передать его. Тогда вообще не нужно передавать имя пользователя / пароль.

person Peetz    schedule 31.03.2011
comment
Сайт разработан не нами, а сайтами моих клиентов. Таким образом, этот веб-сайт меняется от покупателя к покупателю. - person Dinesh; 01.04.2011
comment
Хорошо, если клиент не будет создавать отдельную страницу входа в приложение, то то, что я делал в прошлом, - это создать форму с теми же элементами, названными одинаково и предварительно заполнить данные, а затем отправить форму автоматически. Будьте осторожны, чтобы включить все скрытые элементы формы и другие элементы, необходимые при отправке формы. - person Peetz; 01.04.2011
comment
Да, я создал форму входа в UIWebView и отправил почтовый запрос, и это сработало. Но мне интересно, есть ли способ, при котором я могу создавать сеансы и просто отправлять сеанс на веб-сайт. пожалуйста посоветуй. - person Dinesh; 05.04.2011
comment
Не знаете, что вы имеете в виду, говоря о создании сеансов и отправке их на веб-сайт? Я предполагаю, что вы имеете в виду создать сеанс сервера и отправить его на веб-сервер - если так, я не уверен, что вы можете сделать это из соображений безопасности. Почему бы не скрыть все элементы формы и не настроить автоматическую загрузку формы? Пользователь даже не увидит форму, или ему придется нажимать кнопку отправки. - person Peetz; 08.04.2011
comment
Да, то, что вы сказали, работает абсолютно нормально. Спасибо за информацию. - person Dinesh; 12.04.2011
comment
Я попросил своих клиентов создать отдельную точку входа в приложение. Но мой вопрос в том, как создать токен в iOS и как отправить его на этот сайт. Похоже, создание токена внутри приложения - лучший способ сделать это, очень признателен, если вы дадите мне больше информации по этому поводу. - person Dinesh; 01.07.2011