DocID®Documentação do DocID®
Voltar ao DocID®
  • Visão geral

    • Documentação do DocID®
  • Introdução

    • Introdução
    • Como funciona o DocID®
    • Conceitos fundamentais
  • Primeiros passos

    • Primeiros passos
    • Módulo Drupal
    • Plugin WordPress
    • Site personalizado
    • Checklist de entrada em produção
  • Funcionalidades

    • Funcionalidades
    • Standard Login
    • Acesso e personalização
    • Analytics
    • Campaigns
  • Licenças

    • Licenças
  • OAuth 2.0

    • OAuth 2.0
    • Configurar um cliente
    • Fluxo Authorization Code
    • Scopes e UserInfo
    • Segurança e ambientes
  • API

    • API
  • Ajuda

    • Resolução de problemas

Primeiros passos

Módulo Drupal

Ligue o Drupal ao DocID®, aprovisione utilizadores nativos, associe atributos verificados a funções e proteja conteúdo.

O módulo oficial DocID® liga o Drupal a uma das maiores redes online de profissionais de saúde. Utiliza os utilizadores, funções, permissões, sessões, nós, conteúdos multimédia e blocos nativos do Drupal para disponibilizar conteúdo profissional a um público alargado através dos fluxos habituais do Drupal.

Abrir o módulo DocID® no Drupal.org

Pré-requisitos

  • Um site Drupal com HTTPS e permissão para instalar e configurar módulos
  • Uma conta DocID® com um asset de site configurado e credenciais OAuth
  • Os módulos File, Filter, Node, Options e User do Drupal core; Media é opcional para conteúdos multimédia protegidos

Instalar o módulo

Através da interface de administração

Descarregue o pacote atual a partir do projeto DocID® no Drupal.org. Na administração do Drupal, abra Estender → Adicionar novo módulo, carregue o arquivo e conclua a instalação.

Com Composer

Execute o seguinte comando na raiz do projeto Drupal:

Ativar o módulo

Ative o DocID® em Estender na administração do Drupal. Em alternativa, ative-o com Drush e reconstrua as caches:

Configurar OAuth e os dados de clientes solicitados

  1. Abra Configuração → Pessoas → DocID® → Credenciais OAuth.
  2. Copie o URL de callback apresentado para os URI de redirecionamento permitidos do asset correspondente no painel empresarial DocID®.
  3. Introduza o Client ID e o Client Secret do asset.
  4. Em Dados de clientes solicitados, mantenha openid e professional e ative apenas os dados opcionais profile, email ou phone de que o site necessita.

Scopes disponíveis

ScopeEstadoClaims
openidObrigatóriosub
professionalObrigatórioprofession_id, discipline_id, profession_verified
profileOpcionalname, title, given_name, family_name, gender
emailOpcionalemail
phoneOpcionalphone_number

Utilizadores nativos e mapeamento de funções

Um início de sessão DocID® bem-sucedido aprovisiona ou atualiza um utilizador nativo do Drupal associado através do claim sub estável. As contas não são associadas por e-mail. Os mapeamentos podem abranger todos os utilizadores DocID® ou identificadores exatos de profissão, disciplina, instituição ou tema. Todas as funções não administrativas correspondentes são combinadas; as funções atribuídas independentemente no Drupal permanecem inalteradas.

Proteger conteúdo e multimédia

Os editores podem escolher Público, Apenas utilizadores DocID® ou Apenas funções selecionadas nas definições de acesso DocID® do conteúdo suportado. As regras por função usam o acesso a nós do Drupal. Os conteúdos multimédia locais protegidos devem usar o sistema de ficheiros privado do Drupal para que a entrega continue sujeita à autorização do Drupal.

Destinos de início de sessão

Configure destinos internos do Drupal por profissão ou disciplina em Destinos de início de sessão. O número de prioridade mais baixo prevalece. Uma página protegida solicitada antes da autenticação tem prioridade sobre um destino baseado no perfil.

Etiquetas inteligentes disponíveis

O módulo fornece os blocos DocID® Account Navigation, início de sessão DocID® e conta DocID®. Para usar etiquetas inteligentes em conteúdo editorial, ative o filtro DocID® smart tags no formato de texto de confiança relevante.

Autenticação e navegação

A ligação de início de sessão adapta-se ao estado: apresenta iniciar sessão aos visitantes e terminar sessão aos utilizadores DocID® autenticados. Os atributos login_text e logout_text personalizam ambos os rótulos. O nome de utilizador usa o melhor valor disponível por esta ordem: título, nome próprio e apelido; título e apelido; e-mail autorizado; ID de utilizador DocID® estável.

ShortcodeDescrição
[docid-loggedin-content]Content[/docid-loggedin-content]Mostra o conteúdo incluído apenas a utilizadores DocID® autenticados.
[docid-loggedout-content]Content[/docid-loggedout-content]Mostra o conteúdo incluído apenas a visitantes sem uma sessão DocID® autenticada.
[docid-login-link]Mostra Iniciar sessão aos visitantes e Terminar sessão aos utilizadores DocID® autenticados.
[docid-login-link login_text="Access" logout_text="Leave"]Utiliza rótulos de texto personalizados para ambos os estados de autenticação.
[docid-username]Mostra o melhor nome de utilizador disponível: título, nome próprio e apelido; depois título e apelido; depois o endereço de e-mail autorizado; e, por fim, o ID de utilizador DocID® estável.

Dados de perfil

Etiqueta inteligenteScopeDescrição
[docid-profile-id]openid (obrigatório)O identificador estável e único da conta DocID®.
[docid-profile-name]profile (opcional; autorização necessária)O título, o nome próprio e o apelido combinados.
[docid-profile-title]profile (opcional; autorização necessária)O título ou a forma de tratamento.
[docid-profile-given-name]profile (opcional; autorização necessária)O nome próprio.
[docid-profile-family-name]profile (opcional; autorização necessária)O apelido.
[docid-profile-gender]profile (opcional; autorização necessária)O valor de género.
[docid-profile-email]email (opcional; autorização necessária)O endereço de e-mail transferido, quando disponível.
[docid-profile-phone-number]phone (opcional; autorização necessária)O número de telefone transferido, quando disponível.

Aceder ao estado de autenticação e aos claims em PHP

No código da aplicação, carregue a identidade associada ao utilizador atual do Drupal através do serviço IdentityRepository. Em produção, injete current_user e o repositório na sua classe em vez de usar o contentor de serviços estático.

Testar antes do lançamento

  1. Abra conteúdo público e protegido sem iniciar sessão.
  2. Conclua o início de sessão com uma conta de teste elegível e confirme o regresso ao conteúdo inicialmente solicitado.
  3. Continue sem dados de perfil opcionais e confirme que a autenticação funciona com os scopes obrigatórios.
  4. Teste cada mapeamento de função e destino de início de sessão, incluindo uma conta sem correspondência.
  5. Termine a sessão e confirme que o conteúdo protegido deixou de estar acessível.

A integração fornece funções técnicas de autenticação e controlo de acesso. Os operadores do site continuam responsáveis pela escolha dos scopes, permissões, avisos e bases jurídicas adequados à sua implementação.

AnteriorPrimeiros passosSeguintePlugin WordPress

Nesta página

  1. Pré-requisitos
  2. Instalar o módulo
  3. Através da interface de administração
  4. Com Composer
  5. Ativar o módulo
  6. Configurar OAuth e os dados de clientes solicitados
  7. Scopes disponíveis
  8. Utilizadores nativos e mapeamento de funções
  9. Proteger conteúdo e multimédia
  10. Destinos de início de sessão
  11. Etiquetas inteligentes disponíveis
  12. Autenticação e navegação
  13. Dados de perfil
  14. Aceder ao estado de autenticação e aos claims em PHP
  15. Testar antes do lançamento
composer require drupal/docid
drush en docid -ydrush cr
Ler a identidade associada e os claims transferidos
use Drupal\docid\Identity\IdentityRepository; $current_user = \Drupal::currentUser();$identity = $current_user->isAuthenticated()  ? \Drupal::service(IdentityRepository::class)    ->findByUserId((int) $current_user->id())  : NULL; $is_docid_authenticated = $identity !== NULL;$docid_subject = $identity?->subject;$claims = $identity?->claims ?? []; $profession_id = is_string($claims['profession_id'] ?? NULL)  ? $claims['profession_id']  : NULL;$discipline_id = is_string($claims['discipline_id'] ?? NULL)  ? $claims['discipline_id']  : NULL;$institution_id = is_string($claims['institution_id'] ?? NULL)  ? $claims['institution_id']  : NULL;$subject_id = is_string($claims['subject_id'] ?? NULL)  ? $claims['subject_id']  : NULL;$profession_verified = ($claims['profession_verified'] ?? FALSE) === TRUE; // Optional claims exist only when their scope was authorized.$name = is_string($claims['name'] ?? NULL) ? $claims['name'] : NULL;$email = is_string($claims['email'] ?? NULL) ? $claims['email'] : NULL;$phone = is_string($claims['phone_number'] ?? NULL)  ? $claims['phone_number']  : NULL;