auth-module icon indicating copy to clipboard operation
auth-module copied to clipboard

OAuth2 URL may already contain query parameters

Open ekkekuru2 opened this issue 2 years ago • 2 comments

Version

module: 5.0.0-1667386184.dfbbb54 nuxt: 2.15.8

Nuxt configuration

mode:

  • [x] universal
  • [ ] spa

Nuxt configuration

auth: {
  redirect: {
    login: '/login',
    logout: '/',
    callback: '/callback',
    home: '/',
  },
  strategies: {
    azureadb2c: {
      scheme: 'openIDConnect',
      clientId: '<MyClientID>',
      endpoints: {
        configuration:
          'https://<MyTenantName>.b2clogin.com/<MyTenantName>.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=<MyFlowName>',
      },
    },
  },
},

Reproduction

What is expected?

In some cases, authorization endpoint URL already contains query parameters. (e.g Azure AD B2C specifies "user flow name" by using query parameters) If OAuth2 authorization endpoint URL contains '?' (=already has query params), this module should join options generated by this module to given URL with '&' ,not '?'. https://github.com/nuxt-community/auth-module/blob/dfbbb540c5e6c1f0bff0b356c46f50d48ee3f9a5/src/schemes/oauth2.ts#L306

What is actually happening?

Redirect to authorization endpoint fails because authorization URL is like this↓

https://example.com/oauth2/authorize ? given_param=something ? param_generated_by_this_module=something&other_param=...

"?" appears twice

Steps to reproduce

Set up Azure AD B2C and write configuration above

,or just specify authorization endpoint with some query parameters

auth: {
  strategies: {
    social: {
      scheme: 'oauth2',
      endpoints: {
        authorization: 'https://accounts.google.com/o/oauth2/auth?someparameters=...',
        ...

Additional information

Checklist

  • [ ] I have tested with the latest Nuxt version and the issue still occurs
  • [ ] I have tested with the latest module version and the issue still occurs
  • [ ] I have searched the issue tracker and this issue hasn't been reported yet

ekkekuru2 avatar Feb 21 '23 11:02 ekkekuru2

I'm also facing this issue - did you find a workaround?

jmsfilipe avatar Jul 26 '23 11:07 jmsfilipe

I submitted Pull Request about this issue before.

  • #1832

This PR is not merged yet, but I apply this change to my app by using patch-package (https://www.npmjs.com/package/patch-package)

I hope this will help

ekkekuru2 avatar Jul 26 '23 16:07 ekkekuru2