Reactive-Resume icon indicating copy to clipboard operation
Reactive-Resume copied to clipboard

[BUG] Unable to login via Google

Open modem7 opened this issue 2 years ago • 4 comments

Describe the bug Clicking "Login with Google" does nothing. The button reacts with the animation, but no additional prompts come up.

Product Flavor

  • [ ] Managed (https://rxresu.me)
  • [x] Self Hosted

Browser Logs

Error with Permissions-Policy header: Unrecognized feature: 'vr'.
resume.mydomain.com/:1          GET https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 net::ERR_BLOCKED_BY_CLIENT
_app-5f81a5722f16aa8c.js:74 MUI: The LocalizationProvider component was moved from `@mui/lab` to `@mui/x-date-pickers`.
The component will no longer be exported from `@mui/lab` in the first release of July 2022.

You should use `import { LocalizationProvider } from '@mui/x-date-pickers'`
or `import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'`

More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/.
(anonymous) @ _app-5f81a5722f16aa8c.js:74
Eo @ framework-1878cec9098bdf50.js:1
Su @ framework-1878cec9098bdf50.js:1
xi @ framework-1878cec9098bdf50.js:1
bs @ framework-1878cec9098bdf50.js:1
gs @ framework-1878cec9098bdf50.js:1
vs @ framework-1878cec9098bdf50.js:1
ls @ framework-1878cec9098bdf50.js:1
S @ framework-1878cec9098bdf50.js:1
T @ framework-1878cec9098bdf50.js:1
accounts.google.com/gsi/iframe/select?client_id=clientid-clientid.apps.googleusercontent.com&auto_select=false&ux_mode=popup&ui_mode=card&as=jUzqkP%2BeXH%2BqZRd7RjlN0A&channel_id=bf1a1030dbfadcf04515599cd9ff8b7544072d59d762cd7758e06ac28cc15759&origin=https%3A%2F%2Fresume.mydomain.com:1          Failed to load resource: the server responded with a status of 400 ()
m=credential_server_library:36 [GSI_LOGGER]: The given origin is not allowed for the given client ID.
_.z @ m=credential_server_library:36
_.Hc @ m=credential_server_library:113
(anonymous) @ m=credential_server_library:477
(anonymous) @ select?client_id=clientid-clientid.apps.googleusercontent.com&auto_select=false&ux_mode=popup&ui_mode=card&as=jUzqkP%2BeXH%2BqZRd7RjlN0A&channel_id=bf1a1030dbfadcf04515599cd9ff8b7544072d59d762cd7758e06ac28cc15759&origin=https%3A%2F%2Fresume.mydomain.com:4

Desktop (please complete the following information):

  • Docker, with latest version.

Additional context

 ###################
 ##Reactive Resume##
 ###################

  reactiveresumeserver:
    image: amruthpillai/reactive-resume:server-latest
    container_name: ReactiveResume-Server
    environment:
      - PUBLIC_URL=https://resume.$DOMAINNAME
      - POSTGRES_HOST=reactiveresumedb
      - POSTGRES_DB=$RR_POSTGRES_DATABASE
      - POSTGRES_PASSWORD=$RR_POSTGRES_PASSWORD
      - POSTGRES_USER=$RR_POSTGRES_USERNAME
      - TZ=$TZ
      - SECRET_KEY=$RR_SECRET_KEY
      - JWT_SECRET=$RR_JWT_SECRET
      - JWT_EXPIRY_TIME=$RR_JWT_EXPIRY_TIME
      - PUBLIC_GOOGLE_CLIENT_ID=$RR_PUBLIC_GOOGLE_CLIENT_ID
      - GOOGLE_CLIENT_SECRET=$RR_GOOGLE_CLIENT_SECRET
      - GOOGLE_API_KEY=$RR_GOOGLE_API_KEY
      - STORAGE_S3_ENABLED=false
    depends_on:
      - reactiveresumedb
    networks:
      pihole:
        ipv4_address: '172.22.0.140'
      isolated:
    labels: 
      - autoheal=true
      - "traefik.enable=true"
      ## HTTP Routers
      - "traefik.http.routers.resumeserver-rtr.entrypoints=https"
      - "traefik.http.routers.resumeserver-rtr.rule=Host(`resume.$DOMAINNAME`) && PathPrefix(`/api/`)"
      - "traefik.http.routers.resumeserver-rtr.tls=true"
      ## Middlewares
      - "traefik.http.routers.resumeserver-rtr.middlewares=chain-no-auth@file, resume-api" # No Authentication
      # - "traefik.http.routers.resumeserver-rtr.middlewares=chain-basic-auth@file" # Basic Authentication
      # - "traefik.http.routers.resumeserver-rtr.middlewares=chain-oauth@file" # Google OAuth 2.0
      # - "traefik.http.routers.resumeserver-rtr.middlewares=chain-authelia@file" # Authelia
      - "traefik.http.middlewares.resume-api.stripprefix.prefixes=/api"
      - "traefik.http.middlewares.resume-api.stripprefix.forceslash=true"
      ## HTTP Services
      - "traefik.http.routers.resumeserver-rtr.service=resumeserver-svc"
      - "traefik.http.services.resumeserver-svc.loadbalancer.server.port=3100"
    volumes:
      - $USERDIR/ReactiveResume/uploads:/app/server/dist/assets/uploads
    healthcheck:
      test: curl -fSs http://localhost:3100/health || exit 1
      interval: 30s
      timeout: 5s
      retries: 3
    restart: always

  reactiveresumeclient:
    image: amruthpillai/reactive-resume:client-latest
    container_name: ReactiveResume-Client
    environment:
      - PUBLIC_SERVER_URL=https://resume.$DOMAINNAME
      - TZ=$TZ
      - PUBLIC_GOOGLE_CLIENT_ID=$RR_PUBLIC_GOOGLE_CLIENT_ID
      - GOOGLE_CLIENT_SECRET=$RR_GOOGLE_CLIENT_SECRET
      - GOOGLE_API_KEY=$RR_GOOGLE_API_KEY
      - PUBLIC_FLAG_DISABLE_SIGNUPS=true
    depends_on:
      - reactiveresumeserver
      - reactiveresumedb
    networks:
      pihole:
        ipv4_address: '172.22.0.141'
    labels: 
      - autoheal=true
      - "traefik.enable=true"
      ## HTTP Routers
      - "traefik.http.routers.resume-rtr.entrypoints=https"
      - "traefik.http.routers.resume-rtr.rule=Host(`resume.$DOMAINNAME`)"
      - "traefik.http.routers.resume-rtr.tls=true"
      ## Middlewares
      - "traefik.http.routers.resume-rtr.middlewares=chain-no-auth@file" # No Authentication
      # - "traefik.http.routers.resume-rtr.middlewares=chain-basic-auth@file" # Basic Authentication
      # - "traefik.http.routers.resume-rtr.middlewares=chain-oauth@file" # Google OAuth 2.0
      # - "traefik.http.routers.resume-rtr.middlewares=chain-authelia@file" # Authelia
      ## HTTP Services
      - "traefik.http.routers.resume-rtr.service=resume-svc"
      - "traefik.http.services.resume-svc.loadbalancer.server.port=3000"
      ## Flame Dashboard
      - flame.type=application # "app" works too
      - flame.name=Reactive Resume
      - flame.category=Other
      - flame.icon=https://raw.githubusercontent.com/modem7/MiscAssets/master/Icons/rxresume.png
    healthcheck:
      test: curl -fSs 127.0.0.1:3000 || exit 1
      interval: 30s
      timeout: 5s
      retries: 3
    restart: always

  reactiveresumedb:
    image: postgres:alpine
    container_name: ReactiveResume-DB
    environment:
      - TZ=$TZ
      - POSTGRES_DB=$RR_POSTGRES_DATABASE
      - POSTGRES_PASSWORD=$RR_POSTGRES_PASSWORD
      - POSTGRES_USER=$RR_POSTGRES_USERNAME
    networks:
      - isolated
    volumes:
      - $USERDIR/ReactiveResume/db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $RR_POSTGRES_USERNAME" ]
      interval: 30s
      timeout: 5s
      retries: 3
    restart: always

No additional issues with logs on containers.

modem7 avatar Jun 21 '22 21:06 modem7

accounts.google.com/gsi/iframe/select?client_id=clientid-clientid.apps.googleusercontent.com&auto_select=false&ux_mode=popup&ui_mode=card&as=jUzqkP%2BeXH%2BqZRd7RjlN0A&channel_id=bf1a1030dbfadcf04515599cd9ff8b7544072d59d762cd7758e06ac28cc15759&origin=https%3A%2F%2Fresume.mydomain.com:1          Failed to load resource: the server responded with a status of 400 ()
m=credential_server_library:36 [GSI_LOGGER]: The given origin is not allowed for the given client ID.

You need manually add your host url/ip to use the API.

martadinata666 avatar Jun 23 '22 12:06 martadinata666

accounts.google.com/gsi/iframe/select?client_id=clientid-clientid.apps.googleusercontent.com&auto_select=false&ux_mode=popup&ui_mode=card&as=jUzqkP%2BeXH%2BqZRd7RjlN0A&channel_id=bf1a1030dbfadcf04515599cd9ff8b7544072d59d762cd7758e06ac28cc15759&origin=https%3A%2F%2Fresume.mydomain.com:1          Failed to load resource: the server responded with a status of 400 ()
m=credential_server_library:36 [GSI_LOGGER]: The given origin is not allowed for the given client ID.

You need manually add your host url/ip to use the API.

I have, I've just edited the domain as I don't really want to share it on github.

This was working as expected and correctly until a couple of versions ago.

modem7 avatar Jun 23 '22 12:06 modem7

Oh sorry, just tried again with google login. My suspicision is the moving from firebase to google oauth. Firebase can use local ip as source, but google oauth can't. So technically, in my comprehension we cant use some domain that not verified.

martadinata666 avatar Jun 23 '22 12:06 martadinata666

Oh sorry, just tried again with google login. My suspicision is the moving from firebase to google oauth. Firebase can use local ip as source, but google oauth can't. So technically, in my comprehension we cant use some domain that not verified.

Heya, I'm not using local IP as verification either, all done via reverse proxy via cloudflare with external domain on Google (as can be seen via the docker compose config)

I've set up Google oauth via the dev console, no issues at all from that side, the API key works with no issues, definitely seems like an RX issue rather than traefik/Google issue as I haven't changed that config for months.

I've seen a few other issues ( https://github.com/AmruthPillai/Reactive-Resume/issues/909 https://github.com/AmruthPillai/Reactive-Resume/issues/888 https://github.com/AmruthPillai/Reactive-Resume/issues/873 ) listed that have the same symptoms.

modem7 avatar Jun 23 '22 12:06 modem7

Fixed in v3.6.0

AmruthPillai avatar Aug 22 '22 18:08 AmruthPillai