Skip to content
Snippets Groups Projects
Select Git revision
  • b10de1b248c3157563ce93e27dd0e1c03fed5866
  • master default protected
  • replication_test
  • 553-semantic-recommendation-2
  • release-1.10 protected
  • dev protected
  • 553-semantic-recommendation
  • release-1.9 protected
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8 protected
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • 485-fixity-checks
  • v1.10.3 protected
  • v1.10.2 protected
  • v1.10.1 protected
  • v1.10.0-rc13 protected
  • v1.10.0-rc12 protected
  • v1.10.0-rc11 protected
  • v1.10.0-rc10 protected
  • v1.10.0-rc9 protected
  • v1.10.0-rc8 protected
  • v1.10.0-rc7 protected
  • v1.10.0-rc6 protected
  • v1.10.0-rc5 protected
  • v1.10.0-rc4 protected
  • v1.10.0-rc3 protected
  • v1.10.0-rc2 protected
  • v1.10.0rc1 protected
  • v1.10.0rc0 protected
  • v1.10.0 protected
  • v1.9.3 protected
  • v1.9.2 protected
41 results

index.js

Blame
  • index.js 1.53 KiB
    // eslint-disable-next-line camelcase
    import jwt_decode from 'jwt-decode'
    const axios = require('axios/dist/browser/axios.cjs')
    const qs = require('qs')
    
    export function authenticate (clientSecret, username, password) {
      const payload = {
        client_id: 'dbrepo-client',
        username,
        password,
        grant_type: 'password',
        client_secret: clientSecret,
        scope: 'openid'
      }
      return axios.post('/api/auth/realms/dbrepo/protocol/openid-connect/token', qs.stringify(payload), {
        headers: { ContentType: 'application/form-data' }
      })
    }
    
    export function userinfo (clientSecret, token) {
      return axios.get('/api/auth/realms/dbrepo/protocol/openid-connect/userinfo', {
        headers: {
          Authorization: `Bearer ${token}`,
          ContentType: 'application/form-data'
        }
      })
    }
    
    export function refresh (clientSecret, token) {
      const payload = {
        client_id: 'dbrepo-client',
        grant_type: 'refresh_token',
        client_secret: clientSecret,
        refresh_token: token
      }
      return axios.post('/api/auth/realms/dbrepo/protocol/openid-connect/token', qs.stringify(payload), {
        headers: { ContentType: 'application/form-data' }
      })
    }
    
    export function tokenToUser (token) {
      const data = jwt_decode(token)
      return {
        id: data.sub,
        firstname: data.given_name,
        lastname: data.family_name,
        username: data.preferred_username,
        theme_dark: data.theme_dark,
        titles_before: data.titles_before,
        titles_after: data.titles_after,
        affiliation: data.affiliation,
        orcid: data.orcid,
        email_verified: data.email_verified
      }
    }