服务器监听websocket,wsServer.
客户端创建websocket,wsClient.
wsClient.connect(wsServer)
wsServer.connected.send(wsClient,{"t":"sessionid","sessionid":"uuid"}} //客户端连接建立后服务器马上发送一个sessionid,询问客户端他是不是已经保存了免密登录状态,如果免密登录,客户端提供上次有效的sessionid和密钥。如果不免密,客户端记录sessionid,然后要么提供用户名密码,把本sessionid提权成有效用户权限。要么就使用sessionid提供的匿名浏览权限。
wsClient.onmessage({"t":"sessionid","sessionid":"uuid"}){
savedlastsessionid = uni..getStorageSync("sessionid") // websocket连接成功后,马上收到服务器发来的新sessionid的命令。然后检查本地是不是已经存有上次交互的sessionid,如果有,发送给服务器上次交互的sessionid和密钥,让服务器验证,从而实现免密码登录。如果本地没有上次登录信息,就接受保存服务器发来的sessionid,
if savedlastsessionid {
wsClient.send(savedlastsessionid)
}else{
wsClient.signin(username,password)
}
}
网友评论