getSessionData function

  1. @visibleForTesting
({String accessToken, String sessionString}) getSessionData(
  1. DateTime expireDateTime, {
  2. String userId = sessionDataUserId,
})

Constructs session data for a given expiration date, belonging to userId.

Implementation

@visibleForTesting
({String accessToken, String sessionString}) getSessionData(
  DateTime expireDateTime, {
  String userId = sessionDataUserId,
}) {
  final expiresAt = expireDateTime.millisecondsSinceEpoch ~/ 1000;
  final accessTokenMid = base64.encode(
    utf8.encode(
      json.encode({
        'exp': expiresAt,
        'sub': userId,
        'role': 'authenticated',
      }),
    ),
  );
  final accessToken = 'any.$accessTokenMid.any';
  final sessionString =
      '{"access_token":"$accessToken","expires_in":'
      '${expireDateTime.difference(DateTime.now()).inSeconds},"refresh_token":"'
      '-yeS4omysFs9tpUYBws9Rg","token_type":"bearer","provider_token":null,"pro'
      'vider_refresh_token":null,"user":{"id":"$userId","app_metadat'
      'a":{"provider":"email","providers":["email"]},"user_metadata":{"Hello":"'
      'World"},"aud":"","email":"fake1680338105@email.com","phone":"","created_'
      'at":"2023-04-01T08:35:05.208586Z","confirmed_at":null,"email_confirmed_a'
      't":"2023-04-01T08:35:05.220096086Z","phone_confirmed_at":null,"last_sign'
      '_in_at":"2023-04-01T08:35:05.222755878Z","role":"","updated_at":"2023-04'
      '-01T08:35:05.226938Z"}}';
  return (accessToken: accessToken, sessionString: sessionString);
}