Accedi automaticamente al sito Discourse

Cosa vorresti che venisse fatto?

Ho un’applicazione mobile. Discourse è la mia fonte di autenticazione. Per accedere all’app mobile, l’utente deve inserire nome utente e password. Successivamente, effettuerò una chiamata API di login a Discourse per autenticare l’utente.

Ora, nell’app mobile ci sono alcuni link che puntano al forum Discourse. Voglio che l’utente si colleghi automaticamente al forum quando clicca sui link. È un’esperienza utente davvero scadente dover inserire le password due volte: la prima volta per accedere all’app e la seconda volta per accedere al forum.

Dato che è possibile l’accesso senza password tramite un link inviato all’email dell’utente, credo che anche questa procedura dovrebbe essere fattibile. Forse con un semplice plugin.

Quando hai bisogno che sia fatto?
1 settimana.

Qual è il tuo budget, in dollari USA, che puoi offrire per questo compito?
300$

2 Mi Piace

Non è possibile? O l’offerta è bassa? :thinking:

Ciao :slight_smile:

In realtà è un po’ più complesso di quanto possa sembrare.

Il login tramite email funziona così: quando clicchi sul pulsante “con email” nel modale di login, viene generato un token specifico per quell’utente e salvato in email_tokens. Puoi vedere quel token nel link (la stringa di numeri e lettere)

http://localhost:3000/session/email-login/69c4953ff0726b5f4c2b26c1e3563b79

Dovresti generare questo token per i link nella tua app ogni volta che l’utente accede. Non credo (?) che questa funzionalità sia attualmente esposta tramite l’API, quindi prima dovresti configurare un endpoint.

Questo endpoint dovrebbe essere protetto dall’autenticazione. Dovresti trovare un modo per gestirlo nella tua app. Forse lo hai già?

Poi dovresti considerare aspetti come la scadenza del token. Quanto tempo dovrebbe rimanere valido? Come recuperare uno nuovo e aggiornare i link una volta scaduto?

Sembra che dovrebbe esserci un modo migliore per gestire questo problema piuttosto che adattare questa funzionalità a posteriori.

Sì, stavo proprio pensando a questo io stesso. E dato che l’accesso tramite email è già implementato, dovrebbe essere possibile anch’esso. Non so come sia l’implementazione effettiva. Forse dovrebbe essere gestito tramite un plugin. Se riesci a farlo, fammi sapere.

Sì, l’autenticazione è gestita dall’API di accesso di Discourse. Non ci sono problemi a riguardo.

Il link di accesso tramite email ha un valore di scadenza? Possiamo usare lo stesso o qualcosa di simile.
Altri aspetti, come l’ottenimento di un nuovo token, saranno gestiti direttamente dall’applicazione.

Sì, la scadenza del token email è determinata dall’impostazione del sito “ore di validità del token email”.

Quindi, in pratica, desideri un plugin che aggiunga un endpoint per creare e restituire un email_token per un utente, e lo chiamerai regolarmente quando i token scadono?

Questo farà al caso mio.

Inoltre, dato che voglio reindirizzare l’utente a un argomento specifico, se l’ID dell’argomento o il link venissero aggiunti e, dopo l’accesso, l’utente venisse reindirizzato a quell’argomento, sarebbe perfetto.

Un altro approccio potrebbe essere quello di far puntare i link nell’app al tuo backend. Quando si clicca su un link, in quel momento viene creato un link appropriato e il client viene reindirizzato, in qualche modo, per andare al posto giusto.
Significherebbe che non è necessario generare link di autenticazione prima che un utente ci faccia clic sopra.

1 Mi Piace

Sì, probabilmente è più efficiente lato app. Penso che l’endpoint in Discourse rimarrebbe comunque lo stesso.

1 Mi Piace

Con questo metodo, come ci assicuriamo che l’utente sia autenticato?

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