spotube/lib/provider/Auth.dart
Kingkor Roy Tirtho 584f431b04 Responsive Navigation for tablet & small devices
Responsive design utilites created
2022-02-26 10:56:32 +06:00

63 lines
1.7 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class Auth with ChangeNotifier {
String? _clientId;
String? _clientSecret;
String? _accessToken;
String? _refreshToken;
DateTime? _expiration;
bool _isLoggedIn = false;
String? get clientId => _clientId;
String? get clientSecret => _clientSecret;
String? get accessToken => _accessToken;
String? get refreshToken => _refreshToken;
DateTime? get expiration => _expiration;
bool get isLoggedIn => _isLoggedIn;
void setAuthState({
bool? isLoggedIn,
bool safe = true,
String? clientId,
String? clientSecret,
String? refreshToken,
String? accessToken,
DateTime? expiration,
}) {
if (safe) {
if (clientId != null) _clientId = clientId;
if (clientSecret != null) _clientSecret = clientSecret;
if (isLoggedIn != null) _isLoggedIn = isLoggedIn;
if (refreshToken != null) _refreshToken = refreshToken;
if (accessToken != null) _accessToken = accessToken;
if (expiration != null) _expiration = expiration;
} else {
_clientId = clientId;
_clientSecret = clientSecret;
_accessToken = accessToken;
_refreshToken = refreshToken;
_expiration = expiration;
}
notifyListeners();
}
logout() {
_clientId = null;
_clientSecret = null;
_accessToken = null;
_refreshToken = null;
_expiration = null;
_isLoggedIn = false;
notifyListeners();
}
@override
String toString() {
return "Auth(clientId: $clientId, clientSecret: $clientSecret, accessToken: $accessToken, refreshToken: $refreshToken, expiration: $expiration, isLoggedIn: $isLoggedIn)";
}
}
var authProvider = ChangeNotifierProvider<Auth>((ref) => Auth());