Autenticazione e autorizzazione possono essere integrati nel Flask tramite il Flask Login e Flask-Principal plugin. (O anche potenzialmente tramite il plugin Flask-Security.)Flask-Admin + (Flask-Login e/o Flask-Principal)
TUTTAVIA: Flask-Admin plug --another che fornisce un cruscotto backend - non è un progetto registrato ... e, io credo (tanto che ho può dire), i decoratori usati da Flask-Login e Flask-Principal - e che sono altrimenti richiesti per un utente per accedere a una vista renderizzata ... questi decoratori operano solo su viste che fanno parte di un progetto registrato.
due domande:
1) Come posso registrare Flask-Admin come un progetto nella mia app, e/o altrimenti abilitare Flask-Login e/o decoratori Flask-Principali per proteggere viste associate Flask-Admin ?
2) Perché Flask-Login e Flask-Principal funzionano solo su oggetti che sono parte "nativamente" della mia app ... e non oggetti (ad es. Oggetti "Admin") che vengono importati da un plugin? Come posso aggirare questo problema ... se davvero lo percepisco correttamente?
Ritengo che questo sia il problema in quanto non mi preoccupo di creare viste protette per la pagina indice principale della mia app ... o qualsiasi altra pagina con una vista all'interno di un progetto. Non riesco proprio a farlo per la pagina indice Flask-Admin (che, di nuovo, non ha progetto).
Grazie, Sean ... per me imboccando la documentazione per questo. Li ho rivisti e ho tentato di implementarli ... anche se senza risultato. L'uso del metodo is_accessible rende quindi non necessario utilizzare Flask-Login per proteggere il dashboard dell'amministratore? Significato: quindi non ho bisogno di un decoratore di Flask-Login per la def di qualsiasi visualizzazione di Flask-Admin? Devo dire, al di fuori del repository, i documenti sono sottili per l'autenticazione con Flask-Admin. Se, per caso, oltre il precedente repo, vi imbattete in un'altra implementazione pubblica di questa soluzione ... mi piacerebbe saperlo. – Sean
@Sean: non è necessario il decoratore * Flask-Login *, ma è necessario utilizzare i metodi Flask-Login per autenticare l'utente. Se guardi [riga 85] (https://github.com/mrjoes/flask-admin/blob/master/examples/auth/auth.py#L85) e oltre l'esempio vedrai che le visualizzazioni di amministrazione sono accessibili solo se l'utente corrente è autenticato. Se un utente non autenticato tenta di accedere alle visualizzazioni amministratore, deve essere reindirizzato alla schermata di accesso. –
Il collegamento a un esempio era esattamente ciò di cui avevo bisogno, grazie. – iurii