mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-29 16:15:04 +00:00
fix: update login
This commit is contained in:
@@ -15,7 +15,7 @@ security:
|
|||||||
security: false
|
security: false
|
||||||
|
|
||||||
api_login:
|
api_login:
|
||||||
pattern: ^/api/login
|
pattern: ^/api/login$
|
||||||
stateless: true
|
stateless: true
|
||||||
json_login:
|
json_login:
|
||||||
check_path: api_login
|
check_path: api_login
|
||||||
@@ -30,6 +30,9 @@ security:
|
|||||||
main:
|
main:
|
||||||
custom_authenticators:
|
custom_authenticators:
|
||||||
- App\Security\OAuthAuthenticator
|
- App\Security\OAuthAuthenticator
|
||||||
|
logout:
|
||||||
|
path: /logout
|
||||||
|
target: /
|
||||||
|
|
||||||
# activate different ways to authenticate
|
# activate different ways to authenticate
|
||||||
# https://symfony.com/doc/current/security.html#the-firewall
|
# https://symfony.com/doc/current/security.html#the-firewall
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ controllers:
|
|||||||
|
|
||||||
api_login:
|
api_login:
|
||||||
path: /api/login
|
path: /api/login
|
||||||
|
methods: [ 'POST' ]
|
||||||
|
|
||||||
oauth_connect_check:
|
oauth_connect_check:
|
||||||
path: /login/oauth/check
|
path: /login/oauth/check
|
||||||
|
|||||||
0
frontend/.gitignore
vendored
Normal file
0
frontend/.gitignore
vendored
Normal file
0
frontend/src/index.html
Normal file
0
frontend/src/index.html
Normal file
0
frontend/tsconfig.json
Normal file
0
frontend/tsconfig.json
Normal file
21
frontend/webpack.config.js
Normal file
21
frontend/webpack.config.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entry: './src/index.tsx',
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.tsx?$/,
|
||||||
|
use: 'ts-loader',
|
||||||
|
exclude: /node_modules/,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.tsx', '.ts', '.js'],
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
filename: 'bundle.js',
|
||||||
|
path: path.resolve(__dirname, 'dist'),
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -9,26 +9,21 @@ use Symfony\Component\HttpFoundation\JsonResponse;
|
|||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
use Symfony\Component\Security\Core\User\UserInterface;
|
use Symfony\Component\Security\Core\User\UserInterface;
|
||||||
|
use Symfony\Component\Security\Http\Attribute\IsGranted;
|
||||||
|
|
||||||
class HomeController extends AbstractController
|
class HomeController extends AbstractController
|
||||||
{
|
{
|
||||||
|
|
||||||
#[Route(path: "/", name: "index")]
|
#[Route(path: "/login/oauth", name: "oauth_connect")]
|
||||||
public function index(): Response
|
|
||||||
{
|
|
||||||
return $this->render('index.html.twig');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#[Route(path: "/login/oauth", name: "connect_start")]
|
|
||||||
public function connectAction(ClientRegistry $clientRegistry): Response
|
public function connectAction(ClientRegistry $clientRegistry): Response
|
||||||
{
|
{
|
||||||
return $clientRegistry->getClient('oauth')->redirect();
|
return $clientRegistry->getClient('oauth')->redirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route(path: "/login/oauth/token", name: "login_oauth_token")]
|
#[Route(path: "/login/oauth/token", name: "oauth_connect_token")]
|
||||||
public function getToken(UserInterface $user, JWTTokenManagerInterface $JWTManager): JsonResponse
|
#[IsGranted('IS_AUTHENTICATED_FULLY')]
|
||||||
|
public function loginOAuthToken(UserInterface $user, JWTTokenManagerInterface $JWTManager): JsonResponse
|
||||||
{
|
{
|
||||||
return new JsonResponse(['token' => $JWTManager->create($user)]);
|
return new JsonResponse(['token' => $JWTManager->create($user)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class OAuthAuthenticator extends OAuth2Authenticator implements AuthenticationEn
|
|||||||
|
|
||||||
public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): RedirectResponse
|
public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): RedirectResponse
|
||||||
{
|
{
|
||||||
return new RedirectResponse($this->router->generate('index'));
|
return new RedirectResponse($this->router->generate('api_doc'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onAuthenticationFailure(Request $request, AuthenticationException $exception): ?Response
|
public function onAuthenticationFailure(Request $request, AuthenticationException $exception): ?Response
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>{% block title %}Domain Watchdog{% endblock %}</title>
|
|
||||||
{% block stylesheets %}
|
|
||||||
{{ encore_entry_link_tags('app') }}
|
|
||||||
{% endblock %}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="root"></div>
|
|
||||||
{% block javascripts %}
|
|
||||||
{{ encore_entry_script_tags('app') }}
|
|
||||||
{% endblock %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"jsx": "react",
|
|
||||||
"module": "esnext",
|
|
||||||
"moduleResolution": "node",
|
|
||||||
"allowSyntheticDefaultImports": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"lib": [
|
|
||||||
"es6",
|
|
||||||
"dom"
|
|
||||||
],
|
|
||||||
"noImplicitAny": true,
|
|
||||||
"noImplicitThis": true,
|
|
||||||
"strictNullChecks": true
|
|
||||||
},
|
|
||||||
"include": [
|
|
||||||
"assets/**/*"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
const Encore = require('@symfony/webpack-encore');
|
|
||||||
|
|
||||||
// Manually configure the runtime environment if not already configured yet by the "encore" command.
|
|
||||||
// It's useful when you use tools that rely on webpack.config.js file.
|
|
||||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
|
||||||
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
|
||||||
}
|
|
||||||
|
|
||||||
Encore
|
|
||||||
// directory where compiled assets will be stored
|
|
||||||
.setOutputPath('public/build/')
|
|
||||||
// public path used by the web server to access the output path
|
|
||||||
.setPublicPath('/build')
|
|
||||||
// only needed for CDN's or subdirectory deploy
|
|
||||||
//.setManifestKeyPrefix('build/')
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ENTRY CONFIG
|
|
||||||
*
|
|
||||||
* Each entry will result in one JavaScript file (e.g. app.js)
|
|
||||||
* and one CSS file (e.g. app.css) if your JavaScript imports CSS.
|
|
||||||
*/
|
|
||||||
.addEntry('app', './assets/index.tsx')
|
|
||||||
|
|
||||||
// When enabled, Webpack "splits" your files into smaller pieces for greater optimization.
|
|
||||||
.splitEntryChunks()
|
|
||||||
|
|
||||||
// will require an extra script tag for runtime.js
|
|
||||||
// but, you probably want this, unless you're building a single-page app
|
|
||||||
.enableSingleRuntimeChunk()
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FEATURE CONFIG
|
|
||||||
*
|
|
||||||
* Enable & configure other features below. For a full
|
|
||||||
* list of features, see:
|
|
||||||
* https://symfony.com/doc/current/frontend.html#adding-more-features
|
|
||||||
*/
|
|
||||||
.cleanupOutputBeforeBuild()
|
|
||||||
.enableBuildNotifications()
|
|
||||||
.enableSourceMaps(!Encore.isProduction())
|
|
||||||
// enables hashed filenames (e.g. app.abc123.css)
|
|
||||||
.enableVersioning(Encore.isProduction())
|
|
||||||
|
|
||||||
// configure Babel
|
|
||||||
// .configureBabel((config) => {
|
|
||||||
// config.plugins.push('@babel/a-babel-plugin');
|
|
||||||
// })
|
|
||||||
|
|
||||||
// enables and configure @babel/preset-env polyfills
|
|
||||||
.configureBabelPresetEnv((config) => {
|
|
||||||
config.useBuiltIns = 'usage';
|
|
||||||
config.corejs = '3.23';
|
|
||||||
})
|
|
||||||
|
|
||||||
// enables Sass/SCSS support
|
|
||||||
//.enableSassLoader()
|
|
||||||
|
|
||||||
// uncomment if you use TypeScript
|
|
||||||
.enableTypeScriptLoader()
|
|
||||||
|
|
||||||
// uncomment if you use React
|
|
||||||
.enableReactPreset()
|
|
||||||
|
|
||||||
// uncomment to get integrity="..." attributes on your script & link tags
|
|
||||||
// requires WebpackEncoreBundle 1.4 or higher
|
|
||||||
//.enableIntegrityHashes(Encore.isProduction())
|
|
||||||
|
|
||||||
// uncomment if you're having problems with a jQuery plugin
|
|
||||||
//.autoProvidejQuery()
|
|
||||||
;
|
|
||||||
|
|
||||||
module.exports = Encore.getWebpackConfig();
|
|
||||||
Reference in New Issue
Block a user