JHipster使用柏树和JWT编程登录



如何通过程序绕过JHipster登录屏幕?

以下是我正在努力实现的目标:

let jwt_token
before(function fetchUser() {
cy.request('POST', '/api/authenticate', {
username: 'user',
password: 'user',
})
.its('body')
.then((res) => {
jwt_token = res.id_token
})
})
beforeEach(function setUser() {
cy.visit('/', {
onBeforeLoad(win) {
win.sessionStorage.setItem('jhi-authenticationtoken', jwt_token);
win.localStorage.setItem('jhi-authenticationtoken', jwt_token);
}
})
})
describe('test', () => {
it('check login works programmatically', () => {
cy.log(jwt_token);
cy.visit('/');
cy.get('.lead').should('have.text', 'Here is microservices catalog');
cy.get('#home-logged-message').should('have.text', 'You are logged in as user "user".');
})
})

我可以清楚地看到jwt_token填充了正确的值。不幸的是,登录仍然无法工作,"测试"失败。

有人对此有积极的经验吗?

诀窍是在令牌本身周围使用引号。以下是在JHipster应用程序中使用JWT时如何进行身份验证的示例

function login(username: string, password: string): void {
cy.request('POST', '/api/authenticate', {
username: username,
password: password
})
.its('body')
.then((res) => {
window.sessionStorage.setItem('jhi-authenticationtoken', '"' + res.id_token + '"');
})
}

你可以在这里找到的实例

最新更新