configuration.js 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const { interactionPolicy: { Prompt, base: policy } } = require('oidc-provider')
  2. // copies the default policy, already has login and consent prompt policies
  3. const interactions = policy()
  4. // create a requestable prompt with no implicit checks
  5. const selectAccount = new Prompt({
  6. name: 'select_account',
  7. requestable: true
  8. })
  9. // add to index 0, order goes select_account > login > consent
  10. interactions.add(selectAccount, 0)
  11. module.exports = {
  12. clients: [
  13. {
  14. client_id: 'seec-portal-1919810-114514',
  15. response_types: ['id_token'],
  16. grant_types: ['implicit'],
  17. token_endpoint_auth_method: 'none'
  18. }
  19. ],
  20. interactions: {
  21. // policy: interactions,
  22. url: (ctx, interaction) => { // eslint-disable-line no-unused-vars
  23. console.log('redirect now!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
  24. return '/api/authenticate'
  25. }
  26. },
  27. cookies: {
  28. long: { signed: true, maxAge: (1 * 24 * 60 * 60) * 1000 }, // 1 day in ms
  29. short: { signed: true, sameSite: 'none' },
  30. keys: ['some secret key', 'and also the old rotated away some time ago', 'and one more']
  31. },
  32. claims: {
  33. address: ['address'],
  34. email: ['email', 'email_verified'],
  35. phone: ['phone_number', 'phone_number_verified'],
  36. profile: ['birthdate', 'family_name', 'gender', 'given_name', 'locale', 'middle_name', 'name',
  37. 'nickname', 'picture', 'preferred_username', 'profile', 'updated_at', 'website', 'zoneinfo']
  38. },
  39. features: {
  40. devInteractions: { enabled: false }, // defaults to true
  41. deviceFlow: { enabled: true }, // defaults to false
  42. introspection: { enabled: true }, // defaults to false
  43. revocation: { enabled: true } // defaults to false
  44. },
  45. jwks: {
  46. keys: [
  47. {
  48. d: 'VEZOsY07JTFzGTqv6cC2Y32vsfChind2I_TTuvV225_-0zrSej3XLRg8iE_u0-3GSgiGi4WImmTwmEgLo4Qp3uEcxCYbt4NMJC7fwT2i3dfRZjtZ4yJwFl0SIj8TgfQ8ptwZbFZUlcHGXZIr4nL8GXyQT0CK8wy4COfmymHrrUoyfZA154ql_OsoiupSUCRcKVvZj2JHL2KILsq_sh_l7g2dqAN8D7jYfJ58MkqlknBMa2-zi5I0-1JUOwztVNml_zGrp27UbEU60RqV3GHjoqwI6m01U7K0a8Q_SQAKYGqgepbAYOA-P4_TLl5KC4-WWBZu_rVfwgSENwWNEhw8oQ',
  49. dp: 'E1Y-SN4bQqX7kP-bNgZ_gEv-pixJ5F_EGocHKfS56jtzRqQdTurrk4jIVpI-ZITA88lWAHxjD-OaoJUh9Jupd_lwD5Si80PyVxOMI2xaGQiF0lbKJfD38Sh8frRpgelZVaK_gm834B6SLfxKdNsP04DsJqGKktODF_fZeaGFPH0',
  50. dq: 'F90JPxevQYOlAgEH0TUt1-3_hyxY6cfPRU2HQBaahyWrtCWpaOzenKZnvGFZdg-BuLVKjCchq3G_70OLE-XDP_ol0UTJmDTT-WyuJQdEMpt_WFF9yJGoeIu8yohfeLatU-67ukjghJ0s9CBzNE_LrGEV6Cup3FXywpSYZAV3iqc',
  51. e: 'AQAB',
  52. kty: 'RSA',
  53. n: 'xwQ72P9z9OYshiQ-ntDYaPnnfwG6u9JAdLMZ5o0dmjlcyrvwQRdoFIKPnO65Q8mh6F_LDSxjxa2Yzo_wdjhbPZLjfUJXgCzm54cClXzT5twzo7lzoAfaJlkTsoZc2HFWqmcri0BuzmTFLZx2Q7wYBm0pXHmQKF0V-C1O6NWfd4mfBhbM-I1tHYSpAMgarSm22WDMDx-WWI7TEzy2QhaBVaENW9BKaKkJklocAZCxk18WhR0fckIGiWiSM5FcU1PY2jfGsTmX505Ub7P5Dz75Ygqrutd5tFrcqyPAtPTFDk8X1InxkkUwpP3nFU5o50DGhwQolGYKPGtQ-ZtmbOfcWQ',
  54. p: '5wC6nY6Ev5FqcLPCqn9fC6R9KUuBej6NaAVOKW7GXiOJAq2WrileGKfMc9kIny20zW3uWkRLm-O-3Yzze1zFpxmqvsvCxZ5ERVZ6leiNXSu3tez71ZZwp0O9gys4knjrI-9w46l_vFuRtjL6XEeFfHEZFaNJpz-lcnb3w0okrbM',
  55. q: '3I1qeEDslZFB8iNfpKAdWtz_Wzm6-jayT_V6aIvhvMj5mnU-Xpj75zLPQSGa9wunMlOoZW9w1wDO1FVuDhwzeOJaTm-Ds0MezeC4U6nVGyyDHb4CUA3ml2tzt4yLrqGYMT7XbADSvuWYADHw79OFjEi4T3s3tJymhaBvy1ulv8M',
  56. qi: 'wSbXte9PcPtr788e713KHQ4waE26CzoXx-JNOgN0iqJMN6C4_XJEX-cSvCZDf4rh7xpXN6SGLVd5ibIyDJi7bbi5EQ5AXjazPbLBjRthcGXsIuZ3AtQyR0CEWNSdM7EyM5TRdyZQ9kftfz9nI03guW3iKKASETqX2vh0Z8XRjyU',
  57. use: 'sig'
  58. }, {
  59. crv: 'P-256',
  60. d: 'K9xfPv773dZR22TVUB80xouzdF7qCg5cWjPjkHyv7Ws',
  61. kty: 'EC',
  62. use: 'sig',
  63. x: 'FWZ9rSkLt6Dx9E3pxLybhdM6xgR5obGsj5_pqmnz5J4',
  64. y: '_n8G69C-A2Xl4xUW2lF0i8ZGZnk_KPYrhv4GbTGu5G4'
  65. }
  66. ]
  67. },
  68. ttl: {
  69. AccessToken: 1 * 60 * 60, // 1 hour in seconds
  70. AuthorizationCode: 10 * 60, // 10 minutes in seconds
  71. IdToken: 1 * 60 * 60, // 1 hour in seconds
  72. DeviceCode: 10 * 60, // 10 minutes in seconds
  73. RefreshToken: 1 * 24 * 60 * 60 // 1 day in seconds
  74. }
  75. }