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.