如何从外部登录页面自动填充并登录网站?

时间:2017-03-03 17:19:05

标签: javascript php html forms curl

不同的客户使用不同的网站登录其帐户。我想为他们提供一个表单,将他们的凭据放到它上面,并选择他们想要自己登录的域/平台,然后将这些凭据传递到所需网站的登录表单并将其登录到其中。所以,帮我把凭证发送到网站。您可以在www.ubfmgps.com/login.html

中看到登录表单

这是我获取凭据的html表单

 <form  action="#" id="gaq-form" class="form-b" method="post">
                    <fieldset>
                        <p>
                            <span>
                                <label for="fba">Username</label>
                                <input type="text" id="txtUserName" name="txtUserName" autocomplete="on" required>
                            </span>
                            <span>
                                <label for="fbb">Password</label>
                                <input type="Password" id="txtUserPassword" name="txtUserPassword" required>
                            </span>
                        </p>
                        <p>
                            <solid>Choose Platform</solid>
                            <select name="platform" id="platform" width=100px>
                            <p> <option value="Jimishare" id="Jimishare">Jimishare</option>
                                <option value="Tracksolid" id="Tracksolid">Tracksolid</option>
                                <option value="Gpsyeah" id="Gpsyeah">Gpsyeah</option>
                            </select>
                            </p>
                        </p>
                        <p><button type="submit" onclick="login();">Log Me In</button></p>
                    </fieldset>
                </form>
                <script type="text/javascript">
                         function login()
                        {

                            if(document.getElementById("platform").value=='Jimishare')
                            {
                                var txtUserName = document.getElementById("username").value;
                                var txtUserPassword = document.getElementById("password").value;
                                $.ajax({ 
                                    url : "http://www.jimishare.com",
                                    type : 'post', 
                                    data : 'txtUserName=' + encodeURIComponent(username) + 'txtUserPassword=' + encodeURIComponent(password), 
                                    dataType : 'json', 
                                    error : function(data) { console.log("error"); console.error(data); }, 
                                    success : function(data) { console.log("success"); console.info(data); } 
                                });
                            }
                            else if (document.getElementById("platform").value=='Tracksolid') {
                                document.write("Tracksolid");
                                var account = document.getElementById("username").value;
                                var password = document.getElementById("password").value;
                                $.ajax({ 
                                    url : "http://www.tracksolid.com/mainFrame",
                                    type : 'post', 
                                    data : 'account=' + encodeURIComponent(account) + 'password=' + encodeURIComponent(password), 
                                    dataType : 'json', 
                                    error : function(data) { console.log("error"); console.error(data); }, 
                                    success : function(data) { console.log("success"); console.info(data); } 
                                });

                            }
                            else {
                                document.write("Gpsyeah");
                            }
                        }
                        </script>

1 个答案:

答案 0 :(得分:0)

正如大家所说,你正在寻找一个SSO系统。无论如何,如果你想建立一个快速登录系统,你必须添加一些javascript来执行此操作。

您需要定义一个映射,描述每个站点的用户名和密码字段名称。假设你有jQuery,你可以尝试这样:

$(document).ready(function() {
    form = $("#gaq-form");
    websitePickerField = $("select[name='platform']");
    usernameField = $("#username");
    passwordfield = $("#password");
    submitBtn = $('#submit');    

    form.submit(function() {
      updateFormAttrs($(this).val());
    });
});

function updateFormAttrs(currentWebsite) {
    var options = mapping[currentWebsite];
  form.attr('action', options.url);
  usernameField.attr('name', options.usernameName);
  passwordfield.attr('name', options.passwordName);
  submitBtn.attr('name', options.submitName);
}

请参阅此jsfiddle