Qual è l'approccio giusto per salvare le informazioni su user-agent durante il login al web / app?

1

Come sai, Facebook salva le sessioni di accesso e possiamo vederle nelle impostazioni in cui abbiamo effettuato l'accesso.

Ora mostrano indirizzo IP , nome telefono (se connesso con il telefono) e nome app nel telefono e Nome del browser nel caso utilizziamo il browser.

Voglio memorizzare queste informazioni per il mio sito usando PHP e JavaScript. Un modo è utilizzare le funzionalità integrate di PHP sul lato server per salvare queste informazioni sul mio DB quando l'utente effettua il login con successo.

Ma c'è un problema. La funzione fornisce una stringa e trovo difficile estrarre il nome del browser, il nome del sistema operativo e il nome del dispositivo. Inoltre, non mi mostra il nome dell'app nel caso abbia effettuato l'accesso al mio servizio con l'app.

Quindi c'è un modo migliore e consigliato per farlo? Non sarebbe meglio se gestissi questo lato client? Il client che effettua la richiesta al server invia automaticamente Nome dispositivo, nome sistema operativo e altre informazioni.

La seconda opzione mi sembra migliore, ma non sono sicuro che lo sia effettivamente.

    
posta Vikas Kumar 04.02.2018 - 07:02
fonte

2 risposte

0

Le informazioni provengono sempre dal cliente. Come ottenere le informazioni sul server è una domanda diversa, naturalmente.

User-Agent

Quando un client HTTP effettua una richiesta, può includere alcune informazioni su se stesso nell'intestazione User-Agent . Ad esempio, i browser in genere includono alcune informazioni sul nome e sulla versione del browser e alcune informazioni di base sul sistema operativo.

Questo è ciò che la funzione integrata di PHP sta leggendo. 1 Sfortunatamente, il formato di queste stringhe non è standardizzato. L'analisi di queste informazioni può essere complicata e probabilmente dovrebbe essere lasciata a una libreria.

Per identificare un accesso basato su app, tutto ciò che devi fare è fare in modo che il client HTTP dell'app fornisca un'intestazione User-Agent . Troverete come farlo nella documentazione pertinente. Ovviamente, dovrai assicurarti di poterlo analizzare sul server.

1 Per informazioni sul browser / sistema operativo. L'indirizzo IP è un problema separato.

Implementazione personalizzata

In alternativa, è possibile definire un formato di messaggio più strutturato e includerlo con la richiesta di accesso (ad esempio).

Questo ti dà un maggiore controllo su quali informazioni vengono inviate e semplifica l'analisi lato server. Lo svantaggio è che devi implementare e mantenere una logica aggiuntiva, piuttosto che affidarti alle intestazioni HTTP standard.

Non l'ho fatto da solo, ma appare puoi anche far sì che i browser inviino un valore personalizzato per utente. Potresti anche considerare di cercare librerie lato client che facciano questo genere di cose. Certo, devi assicurarti che la tua versione del browser e la tua versione dell'app siano compatibili.

Quale opzione è migliore?

È difficile rispondere senza conoscere l'intero sistema. Tuttavia, se ti aspetti che le richieste vengano inviate solo / per lo più dai browser standard e dalla tua app, inizierei con l'analisi della stringa user-agent.

Se le informazioni sono davvero importanti per i tuoi utenti, lo sforzo aggiuntivo potrebbe essere giustificato. Lo stesso vale, se hai bisogno di informazioni che in genere non vengono inviate dai browser, ma che di solito puoi acquisire tramite JavaScript.

In ogni caso, nota che l'informazione non è affidabile - qualsiasi cliente può in linea di principio inviare qualsiasi cosa, indipendentemente dal meccanismo di trasmissione implementato.

    
risposta data 05.02.2018 - 20:54
fonte
0

In generale non si desidera reinventare la ruota se non è necessario. Vuoi ottenere informazioni sugli user-agent, che si riferiscono al world wide web, non alla tua particolare applicazione. Quindi cerca un componente software disponibile in commercio che possa farlo per te.

In PHP il metodo standard per installare i componenti dello scaffale è Compositore , e il miglior sito web per trovarli è probabilmente Packagist . Se search packagist per user agent parse troverai diversi popolari librerie PHP che è possibile utilizzare per estrarre il nome del browser, il nome del sistema operativo e il nome del dispositivo dalla stringa dell'agente utente.

Leggi le istruzioni per alcuni di questi e usa uno di questi.

    
risposta data 07.04.2018 - 12:44
fonte

Leggi altre domande sui tag