Недавно я использую jhipster для создания проекта весенней загрузки, который выбирает keycloak для защиты моего остальных API, и свойства application.properties, подобные этому:
security:
oauth2:
client:
provider:
oidc:
issuer-uri: http://localhost:9080/auth/realms/jhipster
registration:
oidc:
client-id: web_app
client-secret: web_app
также я создаю проект vue, который выбирает keycloak js для защиты страниц, конфигурация выглядит следующим образом:
import VueKeyCloak from '@dsb-norge/vue-keycloak-js'
Vue.use(VueKeyCloak, {
config: {
realm: 'jhipster',
url: 'http://127.0.0.1:9080/auth',
clientId: 'web_app'
},
onReady: (keycloak) => {
console.log(keycloak.token)
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
}
})
И мы можем видеть, что проект vue и проект Spring используют один и тот же идентификатор клиента keycloak, тип доступа опубликован c в keycloak. В проекте vue мне нужно использовать имя пользователя и пароль для входа в систему,
после входа в систему я могу получить токен через keycloak.token, а также установить
config.headers.Authorization = `Bearer ${Vue.prototype.$keycloak.token}`
когда я называю весенний ботинок остальные API. Но не работает, всегда возвращаются 401. После нескольких дней напряженной работы я не могу найти причину. Кто-нибудь может мне помочь?
Большое спасибо.