Pular para o conteúdo principal
Se o aluno já está logado no seu sistema, num site em WordPress ou no seu aplicativo, ele não precisa entrar de novo na área de membros. O seu servidor gera um token de login para ele na API de operador e o manda para o seu site, que troca esse token por uma sessão de aluno. É o mesmo mecanismo dos links nos e-mails da MemberKit.

Como funciona

1

O seu servidor gera o token

Com a chave da API de operador, que fica só no servidor, peça um token para o e-mail do aluno:
Use só o token. O authenticated_url abre a área de membros hospedada, não o seu site.
2

O seu servidor redireciona o aluno

Envie o navegador para a rota /sso do seu site com o token:
3

O seu site troca o token por uma sessão

A rota /sso lê o token do endereço e o troca por um token de aluno em POST /auth/exchange, informando a área de membros. Com o template, essa rota já existe. Veja A rota /sso para o seu próprio stack.

Exemplos no servidor

Uma rota do seu sistema que o aluno abre quando quer ir para a área de membros. Nos três exemplos, o aluno já está logado no seu sistema, a chave da API está na variável de ambiente MEMBERKIT_API_KEY e o site está em aulas.suamarca.com.br.
A API de operador responde 404 quando o e-mail não é de um aluno da área de membros, quando o aluno está bloqueado e para contas de dono e colaborador. Trate esse caso como “sem acesso”, não como erro.

Garanta que o aluno existe

O token só sai para quem já é aluno. Se o seu sistema é quem libera o acesso, cadastre o aluno antes de gerar o token, com POST /api/v1/users. A chamada cria ou atualiza pelo e-mail, então pode ser feita a cada login sem duplicar ninguém:
Se o acesso já é liberado por uma plataforma de pagamento ou por outra integração, pule esta etapa: o aluno já existe quando chega ao seu sistema.

A rota /sso

No seu próprio stack, crie uma rota que leia o token do endereço, faça a troca e guarde o token de aluno como o login comum guardaria. O código roda no navegador e não precisa de segredo nenhum; a chave headless é pública:
A troca responde invalid_token quando o token expirou ou não é desta área de membros e account_locked quando o aluno foi bloqueado. Nos dois casos, mostre a mensagem na tela de login.

Regras

  • A chave da API de operador nunca vai para o site. Ela controla a área de membros inteira. Só o token de login, que vale para um aluno e por 24 horas, chega ao navegador.
  • O token vale por 24 horas e pode ser trocado mais de uma vez nesse período. Cada troca é um login novo: como cada aluno tem uma sessão por vez, ela encerra a sessão anterior dele, em outro dispositivo ou na área de membros hospedada.
  • Gere o token na hora do clique, não antes. Um token guardado numa página ou num e-mail seu expira sem aviso e leva o aluno para a tela de login.
  • Os e-mails da MemberKit usam o mesmo token. Ao apontar os templates para o seu site, os links deles passam pela mesma rota /sso. Veja E-mails para o seu site.