如何通过代码而不是请求用户传递凭据

时间:2017-06-01 12:55:11

标签: text-to-speech ibm-watson speech-synthesis

我希望通过代码传递凭据,而不是通过此提示请求用户提供凭据。

Screenshot

虽然我在标题中传递凭据,如下面的代码所示:

<html>
<head>    
</head>
<body>
    <div id="text-to-speech">
        <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>

        <input type="text" name="speech-text" TextMode="MultiLine" height:50px;">
        <input type="button" id="btnPOst" value="Play" />
        <br /><br /><br />
        <audio id="speech" autoplay preload="auto" autobuffer controls class="audio"></audio>
    </div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            debugger;
            $("#btnPOst").click(function () {
                debugger;
                var username= "";  
                var password = "";
                var request = $("#text-to-speech input[name=speech-text]").val();

                var url = "https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=en-US_MichaelVoice&accept=audio/wav&text=" + request;                     
                $.ajax
                  ({
                      type: "POST",
                      url: url,
                      dataType: "application/json; charset=utf-8",
                      headers: {
                          'Content-Type': 'application/json',
                          'Accept': 'audio/wav',
                          'Authorization': ("Basic " + btoa(username + ":" + password))
                      },

                      success: function (content) {

                      },

                  });

                $("#speech").attr("src", url)[0].play();

            });
        });


    </script>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

嗨@akash直接从网页进行基本身份验证不是一个好习惯,因为凭据将公开可用,这是一个很大的安全问题。你有没有考虑使用令牌?对于生产应用程序,推荐的方法是从生成令牌的服务器端应用程序执行基本身份验证,然后网页从服务器应用程序获取这些令牌并直接连接到STT服务。代币有效期为一小时。当然,您需要在网页和服务器应用程序之间使用自己的身份验证机制,以便以受控方式提供令牌。

请参阅:https://github.com/watson-developer-cloud/speech-javascript-sdk用于构建此网页:https://speech-to-text-demo.mybluemix.net/

答案 1 :(得分:0)

您可以构建一个动态网址:

“HTTPS://” +用户名+ “:” +密码+“@ gateway.watsonplatform.net /检索和秩/ API / V1 / solr_clusters