我不能处理这个异常。 - 我用的try-catch但这不起作用。 - 我用$request->hasValidSignature()
但这也不管用。
我能做些什么呢?请帮助我,对不起我的英语。
在你App\Exceptions\Handler@render()
,你可以这样做:
public function render($request, Exception $exception)
{
if($exception instanceof \Illuminate\Routing\Exceptions\InvalidSignatureException) {
if (request()->ajax() || request()->wantsJson()) {
return response()->json(['Error' => ['message' => 'Invalid Signature']], 500);
}
return response()->view('errors.invalid-signature', [], 500);
}
return parent::render($request, $exception);
}
如果正被抛出的异常是\Illuminate\Routing\Exceptions\InvalidSignatureException
的一个实例,它会使用位于resources/views/errors/invalid-signature
并与HTTP代码500
视图被呈现。
客户端还可以接收一个JSON响应,如果它的期待之一。这只是一个例子。随意修改它您的需求。
编辑:基于您的评论,你应该试试这个:
public function verify(Request $request)
{
try {
if ($request->route('id') == $request->user()->getKey() && $request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
return response()->json([
'code' => '200',
'body' => __('responses.email-verified')
]);
}
} catch (\Illuminate\Routing\Exceptions\InvalidSignatureException $e) {
return response()->json([
'Error' => ['message' => 'Invalid Signature nene']
]);
} catch (\Exception $e) {
return response()->json([
'Error' => ['message' => 'An Unknown error occured']
]);
}
}