Что делает Javascript: OpenID.Signin ('пример')? - PullRequest
1 голос
/ 14 марта 2011

Я всегда восхищался сайтом stackoverflow.com.

Мне также всегда было любопытно, что делает Javascript:OpenID.Signin('example') здесь, на странице входа в Stackoverflow.com.

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

Имейте в виду, что я новичок, и я бы предпочел, если это возможно, простые ответы.

Заранее спасибо.

PS. Если вы не хотите сказать мне, что делает Javascript:OpenID.Signin('example'), не могли бы вы сказать мне, как я могу достичь той же функциональности?

Я полностью заблудился с материалами OpenId и в любом случае не хотел бы упоминать OpenID как есть на моем веб-сайте. Я уверен, что это усложнит жизнь и пользователям моего сайта. Я бы предпочел решение, соединиться с Google, Facebook и т. Д. Отдельными кнопками.

1 Ответ

0 голосов
/ 14 марта 2011

Если вы просматриваете источник на странице, о которой вы говорите, вы можете увидеть тег сценария для внешнего файла

<script type="text/javascript" src="http://sstatic.net/Js/third-party/openid-jquery.js?v=8"></script>

Если вы посмотрите туда, то увидите, что он содержит глобальную переменную с именем openid, которая, помимо прочего, содержит функцию с именем signin.

Вот тело функции, если вам интересно

signin: function (box_id, onload) {

    var provider = providers[box_id];
    if (!provider) { return; }

    this.highlight(box_id);

    if (box_id == 'openid') {
        $('#openid_input_area').empty();
        this.setOpenIdUrl("");
        $("#openid_identifier").focus();
        return;
    }

    // prompt user for input?
    if (provider['label']) {
        this.useInputBox(provider);
        this.provider_url = provider['url'];
    } else {
        $('.' + box_id).css('cursor', 'wait');

        if (provider['oauth_version']) {
            this.setOAuthInfo(provider['oauth_version'], provider['oauth_server']);
        } else {
            this.setOpenIdUrl(provider['url']);
        }
        this.provider_url = null;
        if (!onload) {
            $('#openid_form').submit();
        }
    }
}
...