我安裝了 composer require tinywan/jwt 。
我在用 webman 生成接口,給小程序和 app 使用,用戶的所有操作,都需要帶上手機號,你確保身份唯一。
如果有人按照我設(shè)置的規(guī)則, 并且更改了手機號,生成了 jwt , 我還需要不需要在接口里去驗證token里的手機號和用戶傳遞過來的手機號是否一樣?或者用戶用正確的 token ,但是更改了傳遞過來的手機號,我是否需要驗證?
public function venueOrderinfoVerification(Request $request, string $local_order_number){
// 獲取 TokenVerifyMiddleware 里已經(jīng)解密好的用戶數(shù)據(jù)
$staffinfo = $request->data;
$param = [
'mobile' => $request->get('mobile'),
'local_order_number' => $local_order_number,
];
$validate = new VenueOrderinfoVerificationValidate();
if (!$validate->check($param)) {
return json($validate->getError());
}
// 去除傳遞過來參數(shù)的前后空格
$param = array_map('trim', $param);
// 這部分多余不????????
if ($param['mobile'] != $staffinfo['mobile']){
return json([
// 'HTTP_FAIL_REQUEST' => [200112, '非法請求,請確認請求者身份。'],
'code' => config('myconfig.statusCode.HTTP_FAIL_REQUEST')[0],
'msg' => config('myconfig.statusCode.HTTP_FAIL_REQUEST')[1],
'data' => [],
]);
}
// 業(yè)務(wù)邏輯...
return json([
// 'HTTP_OK' => [200100, '請求成功'],
'code' => config('myconfig.statusCode.HTTP_OK')[0],
'msg' => config('myconfig.statusCode.HTTP_OK')[1],
'data' => [],
]);
}
這個決定是要走中間件令牌校驗的??梢詤⒖歼@里:https://github.com/Tinywan/webman-admin/blob/main/app/middleware/AuthorizationMiddleware.php
class AuthorizationMiddleware implements MiddlewareInterface
{
/**
* @param Request $request
* @param callable $handler
* @return Response
* @throws ForbiddenHttpException|UnauthorizedHttpException
*/
public function process(Request $request, callable $handler): Response
{
$request->uid = JwtToken::getCurrentId();
if (0 === $request->uid) {
throw new UnauthorizedHttpException();
}
// ....其他
return $handler($request);
}
}