如何使用Starscream验证用户

时间:2018-06-29 06:20:23

标签: swift websocket starscream

我陷入了用户身份验证;我想通过用户名和密码对用户进行身份验证。

我确实通过websocket成功连接,但我不知道如何验证用户身份,我尝试通过Google进行大量研究,但由于完成的工作量较少,我仍然无法实现我的目标。

我想通过JSON请求的服务器API:

import io
import zipfile
import gzip

hexdata = "5a69702054657374"


def zip_it(filename, depth):
    zip_buffer = io.BytesIO()

    for i in range(0, depth):
        with zipfile.ZipFile(zip_buffer, "a", zipfile.ZIP_DEFLATED, False) as zip_file:
            zip_file.writestr(filename + str(i), bytes.fromhex(hexdata).decode("utf-8"))

    with open(filename + ".zip", "wb") as f:
        f.write(zip_buffer.getvalue())


if __name__ == '__main__':
    zip_it("testfile", 3)

并且在请求后服务器响应也是JSON的人可以帮我实现这一点。我非常感谢。

基本上,我是Swift 4中的 WebSocket 中的新手,这就是为什么我遇到很多问题的原因,因为我只使用了Starcream的可可豆。

谢谢。

1 个答案:

答案 0 :(得分:0)

以下是使用Starscream进行基本身份验证的示例:

//Prepare autorization data
    let authString: String = "\(userName):\(password)"        
    let base64String = authString.data(using: String.Encoding.utf8)!.base64EncodedString()

    // Prepare request and set headears for Basic Authorization
    var request = URLRequest(url: URL(string: SERVER_URL)!)
    request.setValue("Basic \(base64String)", forHTTPHeaderField: "Authorization")

    //Initiate websocket
    socket = WebSocket(request: request)
    socket?.advancedDelegate = self
    socket?.connect()

如果结果是“无效的http升级”,只需确保提供正确的用户名和密码即可。