인증 정책 중 하나가 올바르게 실행되는 데 문제가있어 인증 시도가 항상 false로 반환됩니다. 심지어는 테스트를 위해 함수가 true를 반환하도록 강요하고 있습니다. 내 기존 정책 등록에 CommentPolicy
을 추가 한 내 AuthServiceProvider.php
파일Laravel 인증 정책이 호출되지 않음
public function can_modify_or_delete(User $user, Comment $comment)
{
return true;
}
: 나는 Laravel 5.4을 사용하고, 여기 내 정책 기능입니다.
protected $policies = [
'App\Models\Post' => 'App\Policies\PostPolicy',
'App\Models\Comment' => 'App\Policies\CommentPolicy',
];
이상한 점은 포스트 정책이 잘 작동한다는 것입니다. 댓글 하나가 등록되지 않거나 올바르게 호출되지 않는 것 같습니다. 내 경로에
:
Route::delete('/comments/{comment}', '[email protected]');
과 CommentsController
public function destroy(Request $request, Comment $comment)
{
$this->authorize('can_modify_or_delete', $comment);
$comment->delete();
return response(['status' => 'Comment deleted'], 200);
}
불행하게도 어떤 문제에 어떤, 권한 부여 검사가 false를 반환한다. 내가 놓친 게 있니? 오타를 꽤 조심스럽게 확인했는데 찾을 수 없었습니다. 또한 경로 모델 바인딩이 의도 한대로 작동하고있어 리소스가 null이 아닌 것으로 확인되었습니다. 방침에 dd()
을 시도했지만 전화를받지 못했습니다.
경로가 미들웨어로 그룹화되어 있습니까? – Neat
컨트롤러는'auth : api' 미들웨어를 사용합니다. 나는 권한 부여가 실행되기 직전에 컨트롤러 메소드에서'dd()'로 인증 된 사용자를 확보했음을 확인했다. –
은 오류를 출력하지 않거나 작동하지 않습니다. 또한 true로 false로 변경하고 변경이 발생했는지 확인하십시오. – MohamedSabil83