Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Авторизация на Яндекс посредством JavaScript (https://javascript.ru/forum/misc/36545-avtorizaciya-na-yandeks-posredstvom-javascript.html)

weerdsa 19.03.2013 12:06

Авторизация на Яндекс посредством JavaScript
 
Здравствуйте, подскажите пожалуйста глупому человеку :)
Сделал яндекс. почту для домена.
На домене существует своя система авторизации, на яндексе своя. В документации яндекса написано, что возможно сделать следующее:

Если вы хотите, чтобы пользователь при авторизации на вашем сайте авторизовывался автоматически и в почте, то вам нужно разместить эту же форму в скрытом фрейме. После ввода логина и пароля на вашем сайте передайте посредством JavaScript'а почтовый логин и пароль в нее и выполните сабмит. В результате чего (если логин и пароль правильные) пользователь будет авторизован в почте, и будет проставлена соответствующая кука. Если вы разместите на вашем сайте ссылку на http://mail.yandex.ru/for/yourdomain.ru, то она будет вести, в случае успешной авторизации, в ящик пользователя.


Подскажите пожалуйста как это реализовать :cray:

jsgeek 19.03.2013 13:08

После такого доступного описания не должно вообще никаких вопросов возникать, даже с минимальным знанием JS.

Создаешь скрытый фрейм с таким содержанием
Введенные пользователем данные копируешь в поля формы фрейма, а затем вызываешь метод submit() формы (той что во фрейме).

рони 20.03.2013 00:16

Цитата:

Сообщение от jsgeek
Введенные пользователем данные копируешь в поля формы фрейма, а затем вызываешь метод submit() формы (той что во фрейме).

эх вот бы ещё код увидеть?

weerdsa 20.03.2013 09:08

Цитата:

Сообщение от jsgeek (Сообщение 241482)
После такого доступного описания не должно вообще никаких вопросов возникать, даже с минимальным знанием JS.

эхх, видимо совсем туп я

jsgeek 20.03.2013 23:31

Если человек признает что он глуп - значит он не глуп :)
Вот непричесанный код без валидации и т.п.
фрейм:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form method="post" action="https://passport.yandex.ru/for/YourDomain.ru?mode=auth"> 
            <input type="text" name="login" value="1" tabindex="1"/>
            <input type="hidden" name="retpath" value="http://mail.yandex.ru/for/YourDomain.ru">
            <input type="password" name="passwd" value="" maxlength="100" tabindex="2"/> <br>
        </form>
    </body>
</html>

авторизация:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script>
            window.onload = function(e) {
             document.getElementById('auth').onsubmit = function(e) {
                 frames[0].document.forms[0].login.value = 
                           document.forms[0].login.value;
                 frames[0].document.forms[0].passwd.value = 
                           document.forms[0].passwd.value;
                 frames[0].document.forms[0].submit();
             }
                
            }
        </script>
    </head>
    <body>
        <form  id="auth"  method="post" action="/auth"> 
            <div class="label">Логин:</div>
            <input type="text" name="login" value="" tabindex="1"/>
            <div class="label">Пароль:</div>
            <input type="password" name="passwd" value="" maxlength="100" tabindex="2"/> <br>
            <input type="submit" name="In" value="Войти" tabindex="5"/> 
        </form>
        <iframe src="frame.html">
            Фиг вам а не авторизация в яндексе
        </iframe>
    </body>
</html>

рони 20.03.2013 23:38

jsgeek,
Спасибо!!!


Часовой пояс GMT +3, время: 17:06.