mirror of
https://github.com/logto-io/logto.git
synced 2025-02-17 22:04:19 -05:00
fix(core): snakecase OIDC client metadata keys (#127)
This commit is contained in:
parent
9aa4caa826
commit
5f60fe491a
3 changed files with 31 additions and 8 deletions
|
@ -40,6 +40,7 @@
|
|||
"p-retry": "^4.6.1",
|
||||
"slonik": "^23.8.3",
|
||||
"slonik-interceptor-preset": "^1.2.10",
|
||||
"snakecase-keys": "^5.1.0",
|
||||
"zod": "^3.8.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { ApplicationDBEntry } from '@logto/schemas';
|
||||
import dayjs from 'dayjs';
|
||||
import { AdapterFactory, AllClientMetadata } from 'oidc-provider';
|
||||
import snakecaseKeys from 'snakecase-keys';
|
||||
|
||||
import { findApplicationById } from '@/queries/application';
|
||||
import {
|
||||
|
@ -15,16 +16,19 @@ import {
|
|||
export default function postgresAdapter(modelName: string): ReturnType<AdapterFactory> {
|
||||
if (modelName === 'Client') {
|
||||
const reject = async () => Promise.reject(new Error('Not implemented'));
|
||||
const tranpileClient = ({ id, oidcClientMetadata }: ApplicationDBEntry): AllClientMetadata => ({
|
||||
const transpileClient = ({
|
||||
id,
|
||||
oidcClientMetadata,
|
||||
}: ApplicationDBEntry): AllClientMetadata => ({
|
||||
client_id: id,
|
||||
grant_types: ['authorization_code', 'refresh_token'],
|
||||
token_endpoint_auth_method: 'none',
|
||||
...oidcClientMetadata,
|
||||
...snakecaseKeys(oidcClientMetadata),
|
||||
});
|
||||
|
||||
return {
|
||||
upsert: reject,
|
||||
find: async (id) => tranpileClient(await findApplicationById(id)),
|
||||
find: async (id) => transpileClient(await findApplicationById(id)),
|
||||
findByUserCode: reject,
|
||||
findByUid: reject,
|
||||
consume: reject,
|
||||
|
|
28
pnpm-lock.yaml
generated
28
pnpm-lock.yaml
generated
|
@ -61,6 +61,7 @@ importers:
|
|||
prettier: ^2.3.2
|
||||
slonik: ^23.8.3
|
||||
slonik-interceptor-preset: ^1.2.10
|
||||
snakecase-keys: ^5.1.0
|
||||
ts-jest: ^27.0.5
|
||||
tsc-watch: ^4.4.0
|
||||
typescript: ^4.3.5
|
||||
|
@ -90,6 +91,7 @@ importers:
|
|||
p-retry: 4.6.1
|
||||
slonik: 23.8.5
|
||||
slonik-interceptor-preset: 1.2.10
|
||||
snakecase-keys: 5.1.0
|
||||
zod: 3.8.1
|
||||
devDependencies:
|
||||
'@silverhand/eslint-config': 0.2.2_aff669e8eb0d21fc4e2068e6112ef4d0
|
||||
|
@ -6654,7 +6656,6 @@ packages:
|
|||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.3.0
|
||||
dev: true
|
||||
|
||||
/dot-prop/5.3.0:
|
||||
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
|
||||
|
@ -11074,7 +11075,6 @@ packages:
|
|||
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
||||
dependencies:
|
||||
tslib: 2.3.0
|
||||
dev: true
|
||||
|
||||
/lowercase-keys/1.0.1:
|
||||
resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
|
||||
|
@ -11189,7 +11189,6 @@ packages:
|
|||
/map-obj/4.2.1:
|
||||
resolution: {integrity: sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/map-stream/0.1.0:
|
||||
resolution: {integrity: sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=}
|
||||
|
@ -11729,7 +11728,6 @@ packages:
|
|||
dependencies:
|
||||
lower-case: 2.0.2
|
||||
tslib: 2.3.0
|
||||
dev: true
|
||||
|
||||
/node-cleanup/2.1.2:
|
||||
resolution: {integrity: sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=}
|
||||
|
@ -14956,6 +14954,22 @@ packages:
|
|||
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
|
||||
dev: true
|
||||
|
||||
/snake-case/3.0.4:
|
||||
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.3.0
|
||||
dev: false
|
||||
|
||||
/snakecase-keys/5.1.0:
|
||||
resolution: {integrity: sha512-RG6LPYD7nz2CHLY+8LqeBGftuNF0XGX1Q77t3d+vy+zZg0Jxr/y+9ji5Gss+8pyuUGymTEj6L/9fBvY6Jp5Thg==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
map-obj: 4.2.1
|
||||
snake-case: 3.0.4
|
||||
type-fest: 2.5.0
|
||||
dev: false
|
||||
|
||||
/snapdragon-node/2.1.1:
|
||||
resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
@ -16104,7 +16118,6 @@ packages:
|
|||
|
||||
/tslib/2.3.0:
|
||||
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
||||
dev: true
|
||||
|
||||
/tsscmp/1.0.6:
|
||||
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
|
||||
|
@ -16186,6 +16199,11 @@ packages:
|
|||
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/type-fest/2.5.0:
|
||||
resolution: {integrity: sha512-wB5vE+XXZ2g2mDRo18yZMae1joUhquomLTm+BkxeuRHnwmrNWzVPNrFah9z7pjsKNiVAaJL33+uQbgbPSARyqw==}
|
||||
engines: {node: '>=12.20'}
|
||||
dev: false
|
||||
|
||||
/type-is/1.6.18:
|
||||
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
|
Loading…
Add table
Reference in a new issue