ANÚNCIO

~/questoes/programacao

O que são abilities no contexto do Sanctum?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Programação Abilities Intermediario
Aula de referência API Laravel 12: Autenticação Completa com Sanctum e Abilities
Para fixar

Entendendo Abilities no Sanctum

Conceito central

Abilities são permissões específicas vinculadas a tokens de autenticação no Sanctum, definindo quais ações exatas um token pode executar na API. Funcionam como um sistema de controle de acesso granular, onde cada token recebe um conjunto próprio de permissões.

Por que essa resposta faz sentido

Abilities são permissões granulares que definem ações específicas que um token pode executar. Elas permitem controle fino de autorização, possibilitando que diferentes tokens tenham diferentes níveis de acesso mesmo para o mesmo usuário.

Armadilhas comuns

  • Confundir abilities com autenticação: lembrar que autenticação confirma quem você é, enquanto abilities definem o que você pode fazer.
  • Pensar que todas as abilities de um usuário são iguais: na verdade, cada token pode ter um conjunto diferente de abilities, mesmo sendo do mesmo usuário.
  • Associar abilities apenas a papéis (roles): abilities funcionam independentemente, permitindo controle muito mais fino e flexível que apenas admin/usuário.

Entenda as alternativas

A

Funções PHP para executar migrações são responsabilidades do Eloquent e do Laravel, não do Sanctum. Abilities não têm relação com velocidade de migrações de banco de dados.

B

Exatamente! Abilities são permissões granulares associadas a tokens. Elas definem ações específicas como 'ler posts', 'criar posts' ou 'deletar comentários', oferecendo controle fino sobre o que cada token pode fazer.

C

Modelos Eloquent representam tabelas no banco de dados, mas abilities não são modelos de dados. Abilities são configurações de permissão vinculadas aos tokens de autenticação.

D

Middleware de compatibilidade com JavaScript é completamente desvinculado do conceito de abilities. Abilities trabalham no servidor, verificando permissões em requisições à API.

Dica prática: Ao criar um token no Sanctum, você especifica as abilities durante a criação: `$user->createToken('token-name', ['read', 'write', 'delete'])->plainTextToken`. Isso garante que o token só execute essas ações específicas, mesmo que o usuário tenha outras permissões.

Revise pensando: Se você cria dois tokens para o mesmo usuário, eles precisam ter as mesmas abilities ou podem ser diferentes?