Rank 1: Thread
How can i check if a user is logged in?
Votes
0
Replies
22
Participants
Unknown
Messages
23
Rank 1: Thread
How can i check if a user is logged in?
Maybe this will help: https://github.com/appwrite/appwrite/discussions/3938#discussioncomment-3746725
Rank 1: Thread
like that?
try {account.get();} catch(error) {print("not logged in");}```Yep! You can also add the language to enable syntax highlighting
Rank 1: Thread
i actually did haha
Oh sorry. Dart highlighting doesn't work on mobile 😑
Rank 1: Thread
to logout i need to use account.deleteSessions()right?
Rank 1: Thread
but then it will still show my logged in screen
Depends on how you build your app...
Rank 1: Thread
if this would be right it would show the not logged in screen
Rank 1: Thread
class LoggedIn extends StatelessWidget {
@override Widget build(BuildContext context) {
try { account().get();
return Home(title: 'Outfytr'); } catch(error) { return NotLoggedIn(); } }}
class Home extends StatefulWidget { final String title;
Home({required this.title});
@override _HomeState createState() => _HomeState();}
class _HomeState extends State<Home> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Align( alignment: Alignment.topRight, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ ElevatedButton( onPressed: () { account().deleteSessions(); }, child: Text("Logout"), ), ], ), ), ); }}You need to handle state and update the app accordingly...
Rank 1: Thread
and how (sorry im new to flutter)
It might be good to find some additional tutorials or so for flutter then
Rank 1: Thread
i've watched some, but i dont get the mistake
In order to refresh the UI, you need to update state
Rank 1: Thread
So it should be a statusful widget?
Yes
Rank 1: Thread
but the authenticated checker still does not work
code:
class LoggedIn extends StatefulWidget {
@override _LoggedInStatus createState() => _LoggedInStatus();
}
class _LoggedInStatus extends State<LoggedIn> { @override Widget build(BuildContext context) {
try {
account().get(); return NotLoggedIn(); } catch(error) { return Home(); } }}
class Home extends StatefulWidget {
@override _HomeState createState() => _HomeState();}
class _HomeState extends State<Home> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Outfytr"), ), body: Align( alignment: Alignment.topRight, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ ElevatedButton( onPressed: () { account().deleteSessions(); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => NotLoggedIn()), ); }, child: Text("Logout"), ), Text(User.name().toString()) ], ), ), ); }}```I think you need some more tutorials and practice with state fundamentals in flutter
Rank 1: Thread
thats also a fix, somehow xD
Rank 1: Thread
after some working I think the error that i get is not on the widget site, i think, that it's the way I check the logged in. Do you know the fix?
error: Error: AppwriteException: general_unauthorized_scope, User (role: guests) missing scope (account) (401)
If an exception is thrown they aren't logged in....so then you need to update state based on that