How can i check if a user is logged in?
Maybe this will help: https://github.com/appwrite/appwrite/discussions/3938#discussioncomment-3746725
like that?
try {
account.get();
} catch(error) {
print("not logged in");
}```
Yep! You can also add the language to enable syntax highlighting
i actually did haha
Oh sorry. Dart highlighting doesn't work on mobile 😑
to logout i need to use account.deleteSessions()right?
but then it will still show my logged in screen
Depends on how you build your app...
if this would be right it would show the not logged in screen
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...
and how (sorry im new to flutter)
It might be good to find some additional tutorials or so for flutter then
i've watched some, but i dont get the mistake
In order to refresh the UI, you need to update state
So it should be a statusful widget?
Yes
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
thats also a fix, somehow xD
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
Recommended threads
- Impossible to get USER after createEmail...
Am using provider to deal with functions linked to appwrite. Here is my login. Future<String?> login(String email, String password) async { try { aw...
- Weird permission failure
when creating an account I use following methods: ``` Future<void> register(String email, String password, String username) async { final user = await accoun...
- Flutter Android oAuth is no more working
I currently don't get the oAuth login to work in flutter android. it works on ios and on web. but when try to use it on Android, i get to the point where the ca...