比如我的SOKET服务器,希望只给授权用户访问,比如登陆成功,我SSO给用户分配一个token,我希望只有拥有合法token的用户链接我的服务器。一般如何做这个验证比较好呢。
如果是长链接,socket服务器可以要求客户端首先把token发过来,然后socket服务端根据token验证用户是否合法,如果合法在服务端针对当前链接记录一个标记(Gateway/Worker中可以用$_SESSION记录),这样每当有socket数据发来时,检查当前链接是否有验证标记,如果没有并且也不是带token的验证包则视为非法请求,断开链接。
如果是短链接,则要求每个请求都带上token,每个请求都要根据token验证是否合法。
感谢,我也是这样想的。不过第一次做这类业务,心里没谱。
密钥认证分为对称密钥与非对称密钥两种方式。 对称密钥:双方都知道密钥,且用改密钥进行加密与解密操作,前提是双方都知道改密钥的 非对称密钥:发送方利用公开的公钥进行加密,接收方利用自己保存的私钥进行解密。
根据上诉两种情况,你不需要把密钥发送给对方,如果需要发送密钥,本身就不安全,你是否还要对该密钥进行加密!MD5?那多此一举。
如果是长链接,socket服务器可以要求客户端首先把token发过来,然后socket服务端根据token验证用户是否合法,如果合法在服务端针对当前链接记录一个标记(Gateway/Worker中可以用$_SESSION记录),这样每当有socket数据发来时,检查当前链接是否有验证标记,如果没有并且也不是带token的验证包则视为非法请求,断开链接。
如果是短链接,则要求每个请求都带上token,每个请求都要根据token验证是否合法。
感谢,我也是这样想的。不过第一次做这类业务,心里没谱。
密钥认证分为对称密钥与非对称密钥两种方式。
对称密钥:双方都知道密钥,且用改密钥进行加密与解密操作,前提是双方都知道改密钥的
非对称密钥:发送方利用公开的公钥进行加密,接收方利用自己保存的私钥进行解密。
根据上诉两种情况,你不需要把密钥发送给对方,如果需要发送密钥,本身就不安全,你是否还要对该密钥进行加密!MD5?那多此一举。