feat: Configureer auth Swagger
This commit is contained in:
		
							parent
							
								
									e139f59afa
								
							
						
					
					
						commit
						855620cb67
					
				
					 5 changed files with 125 additions and 5 deletions
				
			
		|  | @ -9,14 +9,17 @@ router.get('/config', (req, res) => { | |||
| }); | ||||
| 
 | ||||
| router.get('/testAuthenticatedOnly', authenticatedOnly, (req, res) => { | ||||
|     /* #swagger.security = [{ "student": [ ] }, { "teacher": [ ] }] */ | ||||
|     res.json({message: "If you see this, you should be authenticated!"}); | ||||
| }); | ||||
| 
 | ||||
| router.get('/testStudentsOnly', studentsOnly, (req, res) => { | ||||
|     /* #swagger.security = [{ "student": [ ] }] */ | ||||
|     res.json({message: "If you see this, you should be a student!"}); | ||||
| }); | ||||
| 
 | ||||
| router.get('/testTeachersOnly', teachersOnly, (req, res) => { | ||||
|     /* #swagger.security = [{ "teacher": [ ] }] */ | ||||
|     res.json({message: "If you see this, you should be a teacher!"}); | ||||
| }); | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,7 +17,37 @@ const doc = { | |||
|         { | ||||
|             url: 'https://sel2-1.ugent.be/api' | ||||
|         } | ||||
|     ] | ||||
|     ], | ||||
|     components: { | ||||
|         securitySchemes: { | ||||
|             student: { | ||||
|                 type: 'oauth2', | ||||
|                 flows: { | ||||
|                     implicit: { | ||||
|                         authorizationUrl: 'http://localhost:7080/realms/student/protocol/openid-connect/auth', | ||||
|                         scopes: { | ||||
|                             openid: 'openid', | ||||
|                             profile: 'profile', | ||||
|                             email: 'email' | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             teacher: { | ||||
|                 type: 'oauth2', | ||||
|                 flows: { | ||||
|                     implicit: { | ||||
|                         authorizationUrl: 'http://localhost:7080/realms/teacher/protocol/openid-connect/auth', | ||||
|                         scopes: { | ||||
|                             openid: 'openid', | ||||
|                             profile: 'profile', | ||||
|                             email: 'email' | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| const outputFile = './swagger.json'; | ||||
|  |  | |||
|  | @ -520,10 +520,10 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/login/": { | ||||
|     "/auth/config": { | ||||
|       "get": { | ||||
|         "tags": [ | ||||
|           "Login" | ||||
|           "Auth" | ||||
|         ], | ||||
|         "description": "", | ||||
|         "responses": { | ||||
|  | @ -533,6 +533,63 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/auth/testAuthenticatedOnly": { | ||||
|       "get": { | ||||
|         "tags": [ | ||||
|           "Auth" | ||||
|         ], | ||||
|         "description": "", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "description": "OK" | ||||
|           } | ||||
|         }, | ||||
|         "security": [ | ||||
|           { | ||||
|             "student": [] | ||||
|           }, | ||||
|           { | ||||
|             "teacher": [] | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|     }, | ||||
|     "/auth/testStudentsOnly": { | ||||
|       "get": { | ||||
|         "tags": [ | ||||
|           "Auth" | ||||
|         ], | ||||
|         "description": "", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "description": "OK" | ||||
|           } | ||||
|         }, | ||||
|         "security": [ | ||||
|           { | ||||
|             "student": [] | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|     }, | ||||
|     "/auth/testTeachersOnly": { | ||||
|       "get": { | ||||
|         "tags": [ | ||||
|           "Auth" | ||||
|         ], | ||||
|         "description": "", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "description": "OK" | ||||
|           } | ||||
|         }, | ||||
|         "security": [ | ||||
|           { | ||||
|             "teacher": [] | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|     }, | ||||
|     "/theme/": { | ||||
|       "get": { | ||||
|         "tags": [ | ||||
|  | @ -708,5 +765,35 @@ | |||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "components": { | ||||
|     "securitySchemes": { | ||||
|       "student": { | ||||
|         "type": "oauth2", | ||||
|         "flows": { | ||||
|           "implicit": { | ||||
|             "authorizationUrl": "http://localhost:7080/realms/student/protocol/openid-connect/auth", | ||||
|             "scopes": { | ||||
|               "openid": "openid", | ||||
|               "profile": "profile", | ||||
|               "email": "email" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "teacher": { | ||||
|         "type": "oauth2", | ||||
|         "flows": { | ||||
|           "implicit": { | ||||
|             "authorizationUrl": "http://localhost:7080/realms/teacher/protocol/openid-connect/auth", | ||||
|             "scopes": { | ||||
|               "openid": "openid", | ||||
|               "profile": "profile", | ||||
|               "email": "email" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | @ -551,7 +551,7 @@ | |||
|     "enabled" : true, | ||||
|     "alwaysDisplayInConsole" : false, | ||||
|     "clientAuthenticatorType" : "client-jwt", | ||||
|     "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173" ], | ||||
|     "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173", "http://localhost:3000/api-docs/oauth2-redirect.html" ], | ||||
|     "webOrigins" : [ "+" ], | ||||
|     "notBefore" : 0, | ||||
|     "bearerOnly" : false, | ||||
|  |  | |||
|  | @ -551,7 +551,7 @@ | |||
|     "enabled" : true, | ||||
|     "alwaysDisplayInConsole" : false, | ||||
|     "clientAuthenticatorType" : "client-secret", | ||||
|     "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173" ], | ||||
|     "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173", "http://localhost:3000/api-docs/oauth2-redirect.html" ], | ||||
|     "webOrigins" : [ "+" ], | ||||
|     "notBefore" : 0, | ||||
|     "bearerOnly" : false, | ||||
|  |  | |||
		Reference in a new issue