Laravel jwt.auth извлекает токен из тела

Я хочу иметь возможность извлекать токен из http_request_body по раздражающим причинам, по которым мне нужно отправлять данные, токен слишком длинный для отправки как часть строки запроса, и они не принимают отправку заголовков.

Во всяком случае, мне удалось отредактировать промежуточное ПО jwt.auth GetUserFromToken следующим образом:

if (! $token = $this->auth->setRequest($request)->getToken()) {
    if(! $token = $request->get('token') ) {
        return $this->respond('tymon.jwt.absent', 'token_not_provided', 400);
    }
}

Это работает, но мне интересно, есть ли лучший способ, который был бы более постоянным? Очевидно, что когда я развертываю или обновляю пакет, это будет переопределено.

Есть ли способ расширить или переопределить этот класс из моего приложения, а не напрямую в промежуточном программном обеспечении поставщика?

Спасибо!


person Seán McCabe    schedule 24.09.2017    source источник
comment
вы можете проверить эту ссылку, как переопределить маршрут поставщика с пакетом stackoverflow.com/questions/28832146/   -  person Moeen Basra    schedule 25.09.2017
comment
Не уверен, в чем проблема, обычно, когда что-то слишком длинное для отправки в виде строки запроса, вы отправляете его по почте, которая отправит его в теле запроса, но в этом случае $request->get("token") все равно должен работать, как если бы токен был в строке запроса .   -  person apokryfos    schedule 25.09.2017
comment
@apokryfos думаю, что вы не поняли, модификация действительно работает, вопрос действительно был о том, как сделать модификацию постоянной   -  person Seán McCabe    schedule 25.09.2017
comment
Вы можете просто переопределить этот класс в своем собственном промежуточном программном обеспечении и установить переопределяющее промежуточное программное обеспечение в стеке промежуточного программного обеспечения вместо стандартного. Это то, что Laravel также делает с промежуточным программным обеспечением VerifyCsrfToken в качестве примера.   -  person apokryfos    schedule 25.09.2017


Ответы (1)