Skip to main content

SwissPass

SwissPass provider allows users to login with their SwissPass account.

Configuration​

To be able to use this provider, you need to set environment variables in your .env.local file.

.env.local
SWISSPASS_OAUTH_CLIENT_ID=
SWISSPASS_OAUTH_URL=
SWISSPASS_OAUTH_REDIRECT_URL=

Events​

The following events are emitted:

  • CustomerBeforeLogoutEvent - this event is emitted before the user is logged out. CustomerBeforeLogoutSubscriber listener is used to revoke the SwissPass token.
  • UpdateUserToStoremanagerEvent- this event is emmited after the user is registered to create and Address in SM. It is also emitted when the user logs in and when swisspass/status or swisspass/token routes are called to update SP token. CustomerUpdateStoremanagerSubscriber listener is used to update the user's data in the StoreManager.

Routes​

The following routes are available:

GET /login/swisspass​

Redirects the user to SwissPass login page.

  • body: none
  • query: none
  • response: redirect

GET /login/swisspass/redirect​

Callback for SwissPass login. This route should be used as the redirect URL in the SwissPass configuration. After successful login, the user will be redirected to the profile page.

GET /store-api/swisspass/status​

Checks if the user's SwissPass token is still valid or is expired. If the token is expired, system will try to get a new one with the refresh token. If the refresh token is invalid as well, the user will be logged out.

GET /store-api/swisspass/token​

Returns the user's SwissPass token. Does the same checks as the status route above.

  • body: none
  • query: none
  • response:
    • 200 - token is valid or was refreshed
      • token: string
    • 403 - token is expired
  • emits: UpdateUserToStoremanagerEvent