Qual é o URL para o login do usuário (também conhecido como Como ocultar o formulário de login?)


10

Não desejo permitir que os visitantes se registrem no meu site; no entanto, acho necessário ter um único usuário registrado para fins de teste. Por exemplo, publicarei um artigo com acesso restrito para que meu usuário de teste possa ver como o artigo fica no site sem "expor qualquer roupa suja" ao público em geral (ok, todos os 1 / dia que realmente visitarem ...) .

Meu problema no momento é que acabo desfigurando o site, pois tenho que publicar / cancelar a publicação do formulário de login do usuário. Atualmente, eu 'contoro' esse problema ocultando o formulário de logon em uma subcategoria para que ele não fique imediatamente visível para um visitante casual. É possível criar um método alternativo (por exemplo, um URL personalizado) que permita que meu usuário de teste visualize o conteúdo marcado como restrito sem alterar o que um convidado com acesso público veria?

Respostas:


8

Você pode criar um menu que não seja publicado, colocar um link para a página de login do usuário e nomear o alias como desejar. Desde que você desative a função de permitir registros nas opções do gerenciador de usuários, você deve ser bom.

Em seguida, basta fornecer o URL ao seu cliente.

Portanto, as etapas são:

  1. Crie um novo menu, denomine-o Oculto
  2. Não publique um módulo do novo menu
  3. Adicione um novo item de menu, escolha Gerenciador de usuários e formulário de logon
  4. Nomeie o item de menu Login ou algo assim, para que você saiba o que é, mas altere o alias para algo que alguém não imaginaria.
  5. Teste seu formulário acessando yoursite.com/aliasname

10

Como uma extensão da resposta de Brian Peat:

Se você for para o URL

domain.com/index.php?option=com_users&view=login

você pode fazer login sem ter um item de menu definido ou qualquer tipo de problema de publicação / publicação. Isso pode ser denominado como um problema no Joomla, pois, conhecendo o caminho, você ainda pode se registrar / fazer login se conhecer a estrutura do URL. Existem regras para evitar isso, mas normalmente, por padrão, você pode usar caminhos diretos como esse para chegar aonde precisa ir.

http://www.joomla.org/index.php?option=com_users&view=login

Aqui está no trabalho, mesmo o site principal do Joomla que não tem acesso direto ao login pode ser acessado assim.

Meu ponto é, certifique-se de usar a ACL adequada também, se seus "apenas" usuários registrados, qualquer pessoa que conheça a estrutura do Joomla poderá entrar. Além disso, como Brian havia dito, certifique-se de permitir que os registros estejam desativados.


Existe um URL análogo para /index.php?option=com_users&view=logout (que eu pensei que era intuitivo, mas acabou incorreto)?
— bobthechemist

Você quer sair automaticamente? É um pouco estranho, logout no joomla requer alguns dados de postagem, daí o formulário / botão. Esse link levará você a um botão basicamente.
— Jordan Ramstad

Se você está realmente preocupado com o acesso de pessoas a essa página, pode instalar um plugin sofisticado que força o usuário a usar um token como parte do URL (eu sei que há um para o administrador, com certeza existe um para o front-end) final) ... mas você também pode instalar: extensions.joomla.org/extensions/access-a-security/… que bloqueia IPs se o usuário tentar dizer 10 vezes para efetuar login. Também notifica você. Isso abrirá seus olhos para a frequência com que seu site está sendo atacado. Notei que 100% das tentativas também usam "admin" como nome de usuário.
— Brian Peat

Eu só queria dizer que, mesmo sem itens de menu, o login / registro ainda está acessível. Portanto, se for necessário fazer o login sem precisar lidar com um item de menu, é possível, mas também significa que qualquer pessoa pode fazer isso. Se o registro não estiver bloqueado, qualquer pessoa também poderá criar uma conta e acessar qualquer página "secreta" que possa existir se não houver ACL para evitá-la. Isso pode ser feito criando um grupo extra de ACL e tornando o usuário que também pode acessá-lo nesse grupo. A página em questão também exigiria esse grupo.
— Jordan Ramstad

Hum, de que servem ACLs se você ainda não está logado. Entendo que você nunca pode ocultar uma página de login pública sem um plug-in especial. Independentemente disso, exceto por ataques de força bruta, se você não tiver um login, não poderá ir muito longe. Não vejo muita utilidade em mexer com isso.
— Brian Peat

4

Você deve conseguir isso substituindo o layout do formulário de login do front-end. Adicione algum código PHP próximo à parte superior do arquivo de layout. Esse código adicionado verifica um parâmetro personalizado na URL e um valor específico. Se alguém tentar acessar a página de login através de qualquer URL, mas não incluir o parâmetro personalizado e um valor específico (como abc = xyz ), o código emitirá um "retorno"; para que o layout do formulário não seja processado para exibição.

Com esse código no arquivo de layout substituto, apenas um usuário que conhece a URL (que inclui esse parâmetro personalizado e um valor aceitável) poderá usar esse formulário de login.

Por exemplo: O URL secreto pode ser

mydomain.com/?option=com_users&view=login&abc=xyz

Em seguida, adicione esse código na parte superior do arquivo de layout substituto para o formulário de login:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}

Boa ideia! Esta é uma solução bastante fácil para desativar a exibição. Ele também pode ser estendido ao módulo, se necessário (embora o módulo não tenha um URL direto para acessar).
— Jordan Ramstad

3

Muitas vezes, enfrentava um problema semelhante porque geralmente desejo um login de front-end para editar sites que eu gerencio, sem a necessidade de um formulário de login. Acabei criando um pequeno bookmarklet que adicionei à barra de ferramentas do navegador. Esta é obviamente uma solução muito "local", pois o bookmarklet está disponível apenas para mim (ou para qualquer pessoa para quem eu copie o código), mas funciona em QUALQUER site do Joomla e economiza tempo, basta clicar no link e no formulário de login será mostrado (desde que você esteja em um site Joomla, é claro ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.