anchor.diff:          Addr || {_, Opts} <- Addrs, {addr, Addr} <- Opts,
           size(Addr) == 4, Addr =/= {127, 0, 0, 1}
       ]).
  +
  +
  +%% @private
  +-spec get_user_id_from_token(tokens:token()) -> od_user:id().
  +get_user_id_from_token(Token) ->
  +    {ok, #token{subject = Subject}} = tokens:deserialize(Token),
  +    #subject{id = Id} = Subject,
  +    Id.
  
positive.code: 
  
  %% @private
  -spec create_session(od_user:id(), tokens:serialized()) -> binary().
  create_session(UserId, AccessToken) ->
      Nonce = crypto:strong_rand_bytes(10),
      Identity = ?SUB(user, UserId),
  
negative.code:     gs_protocol:supported_versions().
  
  
  -spec perform_io_test(file_meta:path(), tokens:serialized()) -> ok | error.
  perform_io_test(Path, AccessToken) ->
      UserId = get_user_id_from_token(AccessToken),
      SessionId = create_session(UserId, AccessToken),
      BytesSize = 5000,
      SampleFileContent = str_utils:rand_hex(BytesSize),
  