@@ -7,7 +7,7 @@ import { PrismaService } from '../../shared/prisma.service';
|
|||||||
import { RedisPkceStore } from './pkce/redis-pkce.store';
|
import { RedisPkceStore } from './pkce/redis-pkce.store';
|
||||||
import { InMemoryRefreshStore } from './refresh/inmemory-refresh.store';
|
import { InMemoryRefreshStore } from './refresh/inmemory-refresh.store';
|
||||||
|
|
||||||
const openidClient: any = require('openid-client');
|
const { Issuer, generators } = require('openid-client');
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AuthService {
|
export class AuthService {
|
||||||
@@ -28,7 +28,7 @@ export class AuthService {
|
|||||||
if (this.issuer) return this.issuer;
|
if (this.issuer) return this.issuer;
|
||||||
const issuerUrl = this.config.get<string>('AUTHENTIK_ISSUER');
|
const issuerUrl = this.config.get<string>('AUTHENTIK_ISSUER');
|
||||||
if (!issuerUrl) throw new Error('AUTHENTIK_ISSUER not configured');
|
if (!issuerUrl) throw new Error('AUTHENTIK_ISSUER not configured');
|
||||||
this.issuer = await openidClient.Issuer.discover(issuerUrl);
|
this.issuer = await Issuer.discover(issuerUrl);
|
||||||
return this.issuer;
|
return this.issuer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,9 +47,9 @@ export class AuthService {
|
|||||||
const redirectUri = this.config.get<string>('AUTH_CALLBACK_URL') || `${this.config.get('APP_URL') || ''}/auth/callback`;
|
const redirectUri = this.config.get<string>('AUTH_CALLBACK_URL') || `${this.config.get('APP_URL') || ''}/auth/callback`;
|
||||||
|
|
||||||
const state = require('crypto').randomUUID();
|
const state = require('crypto').randomUUID();
|
||||||
const code_verifier = openidClient.generators.codeVerifier();
|
const code_verifier = generators.codeVerifier();
|
||||||
const code_challenge = await openidClient.generators.codeChallenge(code_verifier);
|
const code_challenge = await generators.codeChallenge(code_verifier);
|
||||||
const nonce = openidClient.generators.nonce();
|
const nonce = generators.nonce();
|
||||||
|
|
||||||
await this.pkceStore.save(state, { code_verifier, nonce, returnTo }, 300);
|
await this.pkceStore.save(state, { code_verifier, nonce, returnTo }, 300);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user