Commit Graph

18 Commits

Author SHA1 Message Date
David Négrier
705c75e3c7 Adding wokalist type checking on front
Additionally, we are making superLoad.json accept a new "immediateCallback" parameter that resolves during the event handler (and not after)
2022-03-21 11:29:18 +01:00
David Négrier
6540f15c5b
Refactoring Woka management (#1810)
* Wrap websockets with HyperExpress

* Add endpoints on pusher to resolve wokas

* getting textures urls from pusher

* Adding OpenAPI documentation for the pusher.

The pusher now exposes a "/openapi" endpoint and a "/swagger-ui/" endpoint.

* revert FRONT_URL

* playerTextures metadata is being loaded via Phaser.Loader

* fetch textures every time character or customize scene is open

* Heavy changes: refactoring the pusher to always send the textures (and the front to accept them)

* Sending character layer details to admin

* Cleaning commented code

* Fixing regex

* Fix woka endpoints on pusher

* Change error wording on pusher

* Working on integration of the woka-list with the new admin endpoint.

* Switching from "name" to "id" in texture object + using zod for woka/list validation

* Add position on default woka data

* Remove async on pusher option method

* Fix woka list url

* add options for /register

* Fxiing loading the Woka list

* Actually returning something in logout-callback

* Copying messages to back too

* remove customize button if no body parts are available (#1952)

* remove customize button if no body parts are available

* remove unused position field from PlayerTexturesCollection interface

* removed unused label field

* fix LocalUser test

* little PlayerTextures class refactor

* Fixing linting

* Fixing missing Openapi packages in prod

* Fixing back build

Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>

* Add returns on pusher endpoints

Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: Piotr Hanusiak <wacneg@gmail.com>
2022-03-11 17:02:58 +01:00
Lurkars
c8047bf4fa change to scope variable in enviroment 2022-02-28 14:56:44 +01:00
Lurkars
2816946c94 add OIDC username + locale 2022-02-16 09:11:08 +01:00
David Négrier
12d6d9a50d Disabling completely routes if admin token not configured 2022-01-27 18:38:33 +01:00
Gregoire Parant
8768374460 HotFix connexion manager
Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>
2021-11-16 13:14:40 +01:00
David Négrier
4e042389c5 Merge branch 'master' of github.com:thecodingmachine/workadventure into develop
# Conflicts:
#	front/src/Connexion/ConnectionManager.ts
#	pusher/src/Controller/AuthenticateController.ts
#	pusher/src/Controller/IoSocketController.ts
#	pusher/src/Services/JWTTokenManager.ts
2021-11-15 16:30:45 +01:00
Gregoire Parant
210a789aa4 Fix feedback @moufmouf 2021-11-15 15:58:08 +01:00
Gregoire Parant
7d0b573d37 Define profile variable to show user connected
- OPID_PROFILE_SCREEN_PROVIDER is a variable to show profile of user connected. You can defined your own provider or use classic provider of WorkAdventure.
 - OpenIdProfileController with url "/profile" get user data and create simple html to show user informations. This url will be called with params 'accessToken'
 - If you define your custom profile url, it will be called with param 'accessToken'.

accessToken is token to access at user informations in your OpenId provider.
2021-11-12 20:48:26 +01:00
Gregoire Parant
fa233e13c6 Changes ANONYMOUS variable
This variable will be use to mandatory login user in self hosted
2021-11-12 16:43:37 +01:00
Kharhamel
d809682c08 HOTFIX: now uses a specific secret token for the admin sockets 2021-10-26 14:58:34 +02:00
David Négrier
05646718a9 Fix disconnects after 5 minutes in Chrome
This commit increases idle timeout for websocket connection

Issue: after 5 minutes of inactive tab (hidden tab) in Chrome, WorkAdventure was disconnected.

I believe Google was going in "intensive throttling" mode (see  https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#intensive-throttling)
This means setTimeouts are run only once per minute.

And I believe the "keep alive" must be implemented with a "setTimeout" (one way or another even if I can't find a trace of this in the code). This would mean that the browser would send keep alive requests only once per minute.
But the pusher is configured to shut the connection after 30 seconds of idle activity.

Therefore, the pusher disconnects inactive Chrome tabs. By raising the Pusher idle timer to 2 minutes, we give a chance to Chrome to send a ping to the server in time (since Chrome won't send more than 1 ping per minute).
2021-09-10 18:30:36 +02:00
grégoire parant
d2b8d7dc04
Active authentication Oauth (#1377)
* Active authentication Oauth

 - Google authentication
 - GitHub authentication
 - Linkedin authentication

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Finish connexion et get user info connexion

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Fix lint error

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Change the expires token for 30 days

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Update connexion stratgey

 - Set last room when it will be created and not when connexion is openned
 - Add '/login' end point permit to logout and open iframe to log user
 - Add logout feature permit to logout in front

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Implement logout and revoke token with hydra

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Fix pull develop conflict

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Profile url (#1399)

* Create function that permit to get profile URL

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Continue profil user

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Add menu and logout button

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Update last room use

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Profile callback permit to get url profile setting from admin

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Finish profile show

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Delete profileUrl will be not use today

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Correct lint

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Update size of iframe

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Delete console log

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>

* Update feedback ARP

Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com>
2021-09-05 18:17:49 +02:00
kharhamel
9c803a69ff FEATURE: users can now login via an openID client 2021-07-30 15:43:46 +02:00
David Négrier
10c3d6dee2 Applying Prettier on pusher and back 2021-06-24 10:09:10 +02:00
Thomas Basler
d79a18ee81 Removed unused URL_ROOM_STARTED variable from pusher and back 2021-01-20 22:56:24 +01:00
Mewp
4be009d5a1 Add a PUSHER_HTTP_PORT configuration variable.
Some deployments might not be based on docker, and not on separate
hosts. In such cases, it would be useful to be able to configure the
port pusher listens on.
2021-01-04 18:23:33 +01:00
David Négrier
4c1e566a6c Adding a Pusher container as a middleware/dispatcher between front and back 2020-11-26 17:53:30 +01:00