loginWithTokens static method

Future<Map<String, dynamic>> loginWithTokens(
  1. String email,
  2. String password, {
  3. String? throttleKey,
  4. String? ipAddress,
  5. String? userAgent,
  6. String? deviceName,
})

Login and issue an access token + optional refresh token.

Refresh tokens are disabled by default and enabled with: AUTH_ENABLE_REFRESH_TOKENS=true.

Implementation

static Future<Map<String, dynamic>> loginWithTokens(
  String email,
  String password, {
  String? throttleKey,
  String? ipAddress,
  String? userAgent,
  String? deviceName,
}) async {
  final result = await login(
    email,
    password,
    throttleKey: throttleKey,
  );

  final user = result['user'] as Map<String, dynamic>;
  final accessToken = result['token'] as String;

  if (!_config.enableRefreshTokens) {
    return {
      'user': user,
      'accessToken': accessToken,
      'token': accessToken,
    };
  }

  final refreshToken = await _createRefreshTokenRecord(
    userId: user['id'],
    ipAddress: ipAddress,
    userAgent: userAgent,
    deviceName: deviceName,
  );

  return {
    'user': user,
    'accessToken': accessToken,
    'token': accessToken,
    'refreshToken': refreshToken,
  };
}