Conferma di una combinazione User+Pass corretta tramite API?

Ciao a tutti,

Ho bisogno di un po’ di guida su come effettuare l’accesso degli utenti a un sito web remoto utilizzando le loro credenziali Discourse esistenti (nome utente e password).

Non credo sia necessario utilizzare SSO… ecco perché.

Per prima cosa, un po’ di contesto sul mio caso d’uso attuale e sul motivo per cui non mi soddisfa.

Attualmente ho un sito web all’indirizzo https://www.example.com che dispone di un pulsante di accesso.

Quando un utente clicca sul pulsante di accesso, gli viene chiesto di inserire il proprio nome utente Discourse esistente e l’indirizzo email (nota: nome utente + email, NON una password).

Prendo quindi queste due informazioni ed eseguo una richiesta API GET a:

"https://mydiscourse.comm/admin/users/list/all.json?email=" + strEmail

Nelle intestazioni di questa chiamata API, includo il nome dell’account utente “system” e la chiave API associata per tale utente.

Se viene trovata una corrispondenza con l’indirizzo email, confronto il nome utente fornito dall’utente nel mio modulo con il nome utente restituito nella risposta API per quell’indirizzo email specifico.

Se corrisponde, considero l’utente connesso sul mio sito all’indirizzo https://www.example.com.

Ho costruito questo sistema tre o quattro anni fa e funziona ancora perfettamente.

Ma…

  1. È molto confuso per un utente inserire una combinazione di Nome Utente + Indirizzo Email in un modulo di accesso
    – La maggior parte delle persone inserisce sempre nome utente + password
    – Nonostante le istruzioni dettagliate presenti ovunque nel modulo, le persone continuano a sbagliare

  2. Non è sicuro
    – Basta conoscere il nome utente e l’indirizzo email per accedere “come loro” a https://www.example.com con pochissimo sforzo, avendo a disposizione queste due informazioni (banali)

Ciò che vorrei fare è permettere all’utente di cliccare sul pulsante di accesso su https://www.example.com e inserire il proprio Discourse User + Password (invece di user+email!).

Il mio sito all’indirizzo example.com eseguirebbe quindi una rapida richiesta API verso il mio Discourse, confermerebbe che la combinazione di user/password fornita è corretta e restituirebbe l’ID utente Discourse esistente.

Spero di essere stato chiaro :grimacing:

Ho esaminato tutta la documentazione API e, per quanto mi sforzi, non riesco a trovare un semplice endpoint di “login”? :thinking:

Non ho bisogno né voglio effettuare l’accesso o la disconnessione degli utenti dal mio Discourse stesso; mi serve semplicemente confermare che le loro credenziali siano corrette.

Qualsiasi indicazione, guida, link o consiglio è molto gradito :blush:

Non esiste una rotta API che restituisca la password in chiaro di un utente, quindi non credo che questo approccio possa funzionare. Dalla tua descrizione, sembra che tu voglia utilizzare Discourse come provider SSO per il tuo sito web. Questo potrebbe essere realizzato. I dettagli su come configurarlo si trovano qui: Use Discourse as an identity provider (SSO, DiscourseConnect).

4 Mi Piace

Grazie @simon - una rapida occhiata a quel link suggerisce che potrebbe essere esattamente quello di cui ho bisogno.

Inizio a leggere :nerd_face:

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.