diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-09-28 16:37:04 +0200 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-09-29 13:31:43 +0200 |
| commit | 3718828fb0b75e95a250ea8d1df23ce25b3e9442 (patch) | |
| tree | 4fb42c74d5fc4de83e32d8b0fa586f0ea2e44277 /client/redirect.go | |
| parent | 8f784bd0657302977ccc434b4859f37ad59616c9 (diff) | |
Client: Simplify mobile redirect logic to separate file
Diffstat (limited to 'client/redirect.go')
| -rw-r--r-- | client/redirect.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/client/redirect.go b/client/redirect.go new file mode 100644 index 0000000..1a06ed6 --- /dev/null +++ b/client/redirect.go @@ -0,0 +1,23 @@ +package client + +// customRedirects supplies redirect values that should be handled by the app itself +// here we hardcode the redirect values that we should use in the OAuth requests +// these values were taken from https://git.sr.ht/~fkooman/vpn-user-portal/tree/v3/item/src/OAuth/VpnClientDb.php +var customRedirects = map[string]string{ + "org.letsconnect-vpn.app.ios": "org.letsconnect-vpn.app.ios:/api/callback", + "org.letsconnect-vpn.app.android": "org.letsconnect-vpn.app:/api/callback", + "org.eduvpn.app.ios": "org.eduvpn.app.ios:/api/callback", + "org.eduvpn.app.android": "org.eduvpn.app:/api/callback", +} + +// CustomRedirect returns the custom redirect string for a clientID `cid` +// Empty string if none is defined or one is defined but is empty. +// In both empty string cases, eduvpn-common handles the redirects as 127.0.0.1 local server redirects +// If a non-empty string is returned, the redirect should be handled by the client and we only use the redirect URI value in our OAuth requests +func CustomRedirect(cid string) string { + v, ok := customRedirects[cid] + if !ok { + return "" + } + return v +} |
