gpt4 book ai didi

ios - 必须提供 secret 或公钥 - IOS/Swift + Socket.io-JWT

转载 作者:行者123 更新时间:2023-11-28 06:42:40 29 4
gpt4 key购买 nike

我的目标非常简单,通过 socket.io jwt 对用户进行身份验证。这样我就可以实时处理他/她的数据。

客户端代码

import SocketIOClientSwift
import KeychainAccess

class SocketIOManager: NSObject {
static let sharedInstance = SocketIOManager()

// 1
let keychain = Keychain(server: "https://testing.herokuapp.com", protocolType: .HTTPS)

//2
var token: String {
get {
if let realToken = keychain["token"] {
return String(realToken)
} else {
return ""
}

}
}

//3
lazy var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "https://testing.herokuapp.com")!,
options: [.Log(true), .ConnectParams(["token": self.token])])

override init() {
super.init()

}


func establishConnection() {
socket.connect()
}

func closeConnection() {
socket.disconnect()
}



}

只是为了让你们明白

  1. keychain 的目的只是为了存储 token ,假设我已经保存了来自登录用户的 token ,那么我将简单地执行此操作keychain["token"] = "token",让我们假设 token 已经已保存
  2. var token 是获取token,因为目前keychain store token 是可选的,因此我需要进行可选绑定(bind)。
  3. 最后我实例化了一个套接字对象,这样我就可以传递 token 作为参数,很多人推荐这样做.ConnectParams(["token": self.token])

到目前为止一切顺利,但现在,每当我尝试在应用程序委托(delegate)中建立连接时,

AppDelegate.Swift

 func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
SocketIOManager.sharedInstance.establishConnection()
}

我会收到

Handling event: error with data: (
{
code = "invalid_token";
message = "secret or public key must be provided";
type = UnauthorizedError;
} )

为清楚起见,我不想包含服务器端代码,因为它只是来自 https://github.com/auth0/socketio-jwt 的样板代码

所以,真正的问题是,我做错了什么??

最佳答案

看起来您没有在服务器实现中提供 secret :


socketioJwt.authorize({
secret: 'some secret here', // <--
handshake: true
})

关于ios - 必须提供 secret 或公钥 - IOS/Swift + Socket.io-JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37549701/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com