Skip to content

Wger iOS app cannot log in when service is behind Anubis (anti-AI protection) #960

@philiprenich

Description

@philiprenich

Priority/Impact

None

Description

NOTE: THIS IS NOT AN ISSUE WITH WGER DIRECTLY. Due to bots swarming my domain, I have installed Anubis to protect it. This works fine in the browser, and when the app was pre-logged in, it worked. I am hoping to understand Wger's install better to help configure Anubis and help others who wish to do the same.

Description

Logging in via the iOS app. Anubis intercepts requests to challenge if the client is a bot or not. Anubis can white list requests, and does so for /api paths. Does the authentication flow live on its own routing? I may be able to create a configuration specific to Wger's auth endpoints to make things work.

Error details

Error title: An error occurred
Error message: FormatException: Unexpected character (at character 1)
<!doctype html><title>Making sure you're not a bo...
^

Stack trace:

#0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3      _parseJson (dart:convert-patch/convert_patch.dart:35)
#4      JsonDecoder.convert (dart:convert/json.dart:641)
#5      JsonCodec.decode (dart:convert/json.dart:223)
#6      AuthProvider.login (package:wger/providers/auth.dart:177)
<asynchronous suspension>
#7      _AuthCardState._submit (package:wger/screens/auth_screen.dart:184)
<asynchronous suspension>

App logs (last 2 entries):

2025-10-17T21:40:57.193819 SEVERE [main] Error caught by PlatformDispatcher.instance.onError: FormatException: Unexpected character (at character 1)
<!doctype html><html lang="en"><head><title>Making sure you&#39;re not a bo...
^

2025-10-17T21:40:57.196294 SEVERE [main] Stack trace: #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3      _parseJson (dart:convert-patch/convert_patch.dart:35)
#4      JsonDecoder.convert (dart:convert/json.dart:641)
#5      JsonCodec.decode (dart:convert/json.dart:223)
#6      AuthProvider.login (package:wger/providers/auth.dart:177)
<asynchronous suspension>
#7      _AuthCardState._submit (package:wger/screens/auth_screen.dart:184)
<asynchronous suspension>

Server version

2.4.0a2 , running via Docker

Mobile app version

latest I believe, can't get to About to check.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions