前端js建立websocket连接时,怎样生成token?

我是做后端开发的,目前的业务场景是:

前端和我握手时,我要验证他所传过来的token是否正确,如果不正确就拒绝连接。

但是,想了一想,前端的token肯定不能是自己按照约定生成的,因为js代码都是公开可见的。

那,如果是先从后端获取到token,然后建立连接的时候再传过来,不就行了吗。但是想了想,又不对:当前端获取到token之后,不也能从控制台里取到变量的值么。。。

现在各种加密算法,网上都可以解码,解码之后就能看出你的token生成规则了。

求大牛赐教,有没有什么比较好的建立ws连接时的验证方案?

阅读 6.7k
2 个回答

jwt啊。。。
https://jwt.io/

里面有各种语言的实现,包括生成,验证等等。

PHP 生成 token 分配给 前端
ws 发送此 token 给后台验证
微信JSSDK是这样验证
wx.config({
    debug: false, // 开启调试模式
    appId: '<?php echo $jsapi_config['appId']; ?>', // 必填,公众号的唯一标识
    timestamp: '<?php echo $jsapi_config['timestamp']; ?>', // 必填,生成签名的时间戳
    nonceStr: '<?php echo $jsapi_config['nonceStr']; ?>', // 必填,生成签名的随机串
    signature: '<?php echo $jsapi_config['signature']; ?>',// 必填,签名,见附录1
    jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});



撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题