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