🐛Fixed bug with ability to log in with revoked session
This commit is contained in:
committed by
Anton Shepilov
parent
d44174b7b1
commit
9026900005
@@ -78,7 +78,7 @@ export default class UserApi {
|
||||
this.jwt = await this.doLogin();
|
||||
}
|
||||
|
||||
private async doLogin() {
|
||||
public async doLogin() {
|
||||
const loginResponse = await this.login();
|
||||
|
||||
expect(loginResponse).toBeDefined();
|
||||
@@ -133,13 +133,10 @@ export default class UserApi {
|
||||
verifierMock.mockImplementation(() => {
|
||||
return Promise.resolve(payload); // Return the predefined payload
|
||||
});
|
||||
const logoutToken = "logout_token_rsa256";
|
||||
|
||||
const response = await this.api.post("/internal/services/console/v1/backchannel_logout", {
|
||||
logout_token: logoutToken,
|
||||
return await this.api.post("/internal/services/console/v1/backchannel_logout", {
|
||||
logout_token: "logout_token_rsa256",
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -61,7 +61,8 @@ describe("The /backchannel_logout API", () => {
|
||||
|
||||
// Verify the session is removed from the database
|
||||
const deletedSession = await currentUser.dbService.getSessionById(currentUser.session);
|
||||
expect(deletedSession).toBeNull();
|
||||
expect(deletedSession).not.toBeNull();
|
||||
expect(deletedSession.revoked_at).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should create a session on login", async () => {
|
||||
@@ -82,6 +83,35 @@ describe("The /backchannel_logout API", () => {
|
||||
expect(response.statusCode).toBe(401);
|
||||
});
|
||||
|
||||
it("should receive 401 after logout and try to login one more time with the same token", async () => {
|
||||
//when
|
||||
await currentUser.logout();
|
||||
|
||||
//then
|
||||
const response = await currentUser.login(currentUser.session);
|
||||
expect(response.statusCode).toBe(401);
|
||||
});
|
||||
|
||||
it("should receive 401 after logout successfully after logout", async () => {
|
||||
//given
|
||||
const myDriveId = "user_" + currentUser.user.id;
|
||||
let response = await currentUser.getDocument(myDriveId);
|
||||
expect(response.statusCode).toBe(200);
|
||||
|
||||
//when
|
||||
await currentUser.logout();
|
||||
|
||||
//then
|
||||
response = await currentUser.login(currentUser.session);
|
||||
expect(response.statusCode).toBe(401);
|
||||
|
||||
currentUser.jwt = await currentUser.doLogin();
|
||||
|
||||
|
||||
response = await currentUser.getDocument(myDriveId);
|
||||
expect(response.statusCode).toBe(200);
|
||||
});
|
||||
|
||||
it("should be able to log-in several times by having multiple sessions", async () => {
|
||||
// Perform a second login
|
||||
const newUserSession = await UserApi.getInstance(platform);
|
||||
|
||||
Reference in New Issue
Block a user