如何使用 Starscream 对用户进行身份验证

Posted

技术标签:

【中文标题】如何使用 Starscream 对用户进行身份验证【英文标题】:How to authenticate user using Starscream 【发布时间】:2018-12-08 06:38:36 【问题描述】:

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

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

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

 “UserName”: “UserName”, “Password”: “Password”  

请求后服务器响应也是 JSON,请有人帮我实现这一点。非常感谢。

基本上我是 Swift 4 中的 WebSocket 的新手,这就是为什么我在使用 Starcream 的 cocoapods 时遇到很多问题。

提前致谢。

【问题讨论】:

有人告诉我吗?到现在都没有反应。请帮帮我。 只有当您在请求标头中使用 Cookie: sesionid=11111 之类的东西对自己进行身份验证时,服务器端才能像往常一样接受 WebSocket 连接。在打开的 websocket 连接中进行身份验证很奇怪。您能否提供有关 API 的更多信息以进行身份​​验证。因为这里没有说应该在哪里张贴 你解决了吗? 【参考方案1】:

这是使用 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 升级”结果,请确保您提供正确的用户名和密码。

【讨论】:

以上是关于如何使用 Starscream 对用户进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用基于令牌的身份验证对在浏览器中输入 url 的用户进行身份验证?

如何使用 OAuth 2.0 通过 Azure Active Directory 对用户进行身份验证?

如何使用 Blazor Server 对用户进行身份验证

我是 Flutter Web 的新手,如何使用 Firebase 电话身份验证对用户进行身份验证,有没有办法让用户保持登录状态?

如何从 sharepoint 2013 Web 服务和 Active Directory 对用户进行身份验证

如何在 Keycloak 中使用手机号码对用户进行身份验证