4D v16.3

On 4D Mobile Authentication database method

Página Inicial

 
4D v16.3
On 4D Mobile Authentication database method

On 4D Mobile Authentication database method 


 

$1, $2, $3 -> On 4D Mobile Authentication database method -> Resultado 
Parâmetro Tipo   Descrição
$1  Texto in Nome de usuário
$2  Texto in Senha
$3  Booleano in True = modo Digest, False = modo Basic
Resultado  Booleano in True = pedido aceito, False = pedido rejeitado

O On 4D Mobile Authentication database method lhe permite controlar de forma personalizada a abertura das sessões 4D Mobile em 4D. Este método base se destina principalmente ao filtrado de conexões quando se estabelece uma conexão entre um Wakanda Server e 4D.

Quando a solicitação de abertura de sessão 4D Mobile provém de Wakanda Server por meio do método mergeOutsideCatalog() (caso geral), os identificadores de conexão estão no cabeçalho da solicitação. O On 4D Mobile Authentication database method é chamado para que possa avaliar estes identificadores. Pode utilizar a lista de usuários da base 4D ou pode utilizar sua própria tabela de identificadores.

Importante: Quando On 4D Mobile Authentication database method está definido (ou seja, quando contém código), 4D lhe delega plenamente o controle das solicitações REST: qualquer ajuste realizado utilizando o menu "Leitura/Escritura " da página Web/4D Mobile das Propriedades da base se ignora (ver o manual de Desenho).

O método base recebe dois parâmetros de tipo de texto ($1 e $2)  e um valor booleano ($3), passado por 4D, e devolve um booleano, $0. Deve declarar estes parâmetros da seguinte maneira:

  // Método base On 4D Mobile Authentication
 <p>C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
 ... // Código para o método

$1 contem o nome do usuário e $2 a senha utilizada para a conexão. 

A senha ($2) pode ser recebida em claro ou em forma hash, dependendo do modo utilizado para a petição. Este modo é indicado pelo parâmetro $3 para permitir realizar o processo apropriado:

  • Se a senha é enviada em claro (modo Basic), $3 devolve False.
  • Se for enviado em forma hash (modo Digest), $3 devolve True.

Quando o pedido de conexão 4D Mobile provém de Wakanda Server, a senha se envia sempre em forma de hash.

Quando os pedidos são enviados desde um navegador ou desde qualquer cliente web diferente a Wakanda Server, é responsabilidade do programador gerenciar a autenticação da página HTML/JavaScript original incluindo nos cabeçalhos HTTP os campos "username-4D" e "password-4D". Neste caso, a senha deve ser enviada em claro a 4D (utilizar SSL para evitar o risco de intercepção de um terceiro).

Deve controlar os identificadores da conexão 4D Mobile no método base. Geralmente, se comprova o nome e a senha utilizando uma tabela de usuários personalizada. Se os identificadores são válidos, passe True em $0. A solicitação é aceita; 4D a executa e devolve o resultado em JSON.
Caso contrário, passe False em $0, neste caso, a conexão é rejeitada e o servidor devolve um erro de autenticação ao remetente.

Se o usuário é referenciado na lista de usuários 4D da base, pode comprovar a senha diretamente através da seguinte instrução:

 $0:=Validate password($1;$2;$3)

O comando Validate password foi estendido para aceitar um nome de usuário como primeiro parâmetro, assim como um parâmetro opcional que indica se a senha se expressa em forma hash.

Se deseja utilizar sua própria lista de usuários externos para a lista da base 4D, pode guardar suas senhas em forma hash utilizando o mesmo algoritmo que o utilizado por Wakanda Server quando se envia a solicitação de conexão a On 4D Mobile Authentication database method em $2. Para gerar o hash para uma senha utilizando este método, pode escrever:

 $HashedPasswd :=Generate digest($ClearPasswd ;4D digest)

O comando Generate digest aceita 4D digest como algoritmo de hashing, correspondente ao método utilizado por 4D para sua gestão interna de palavras chaves.

Este exemplo só aceita o usuário "admin" com a senha "123" que não corresponde a um usuário 4D:

  //On REST Authentication database method
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: usuário
  //$2: senha
  //$3: modo digest
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if

Este exemplo de On 4D Mobile Authentication database method verifica que a demanda de conexão que provém de um dos servidores Wakanda autorizados, salvos nos usuários da base 4D:

 C_TEXT($1;$2)
 C_BOOLEAN($0)
 ON ERR CALL("4DMOBILE_error")
 If($1="WAK1")|($1="WAK2")
    $0:=Validate password($1;$2;$3)
 Else
    $0:=False
End case

 
PROPRIEDADES 

Produto: 4D
Tema: Métodos banco de dados
Número 3367

 
HISTÓRIA 

Criado por: 4D v14
Renomear: 4D v14 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)