【发布时间】:2020-10-09 04:47:02
【问题描述】:
Adonis.js 版本 4.x
所以问题是我无法在客户端添加授权标头以使用中间件Adonis/Middleware/Auth 来验证我的 JWT 令牌。
所以我做了一个客户中间件来授权套接字连接,我现在可以得到我传递的令牌。那么现在如何检查该令牌是否有效?我还没有看到关于这部分的任何好的文档,非常感谢您的帮助!
客户端
import Ws from '@adonisjs/websocket-client'
const ws = Ws('ws://0.0.0.0:3001', {
path: 'adonis-ws'
})
const jwtToken = cookie.get('auth._token.local')
ws
.withJwtToken(jwtToken)
.connect()
服务器端
// start/socket.js
const Ws = use('Ws')
Ws.channel('order', 'OrderController').middleware(['socketAuth'])
// start/wsKernel.js
const Ws = use('Ws')
const namedMiddleware = {
socketAuth: 'App/Middleware/SocketAuthentication'
}
Ws
.registerGlobal(globalMiddleware)
.registerNamed(namedMiddleware)
// app/Middleware/SocketAuthentication.js
class SocketAuthentication {
async wsHandle ({ request, auth }, next) {
try {
const { token } = request.all()
// Authenticate the error in this part :(
await next()
} catch (error) {
console.log(error)
}
}
}
module.exports = SocketAuthentication
【问题讨论】:
标签: node.js authentication websocket jwt adonis.js