What are we doing wrong? Can we both of us working at the same time to add products on the site?
We are working from different computers with differents browsers, with the same internet IP.
Please heeeelp!!!!!
Yes you should be able to. I don't know what the problem is though.
UK OpenCart Hosting | OpenCart Audits | OpenCart Support - please email info@antropy.co.uk
It is really a huge problem for us :/
Unless another developer can reply here with an answer you might need to post a paid job in the Commercial Support Forum and pay a developer like ourselves.
UK OpenCart Hosting | OpenCart Audits | OpenCart Support - please email info@antropy.co.uk
Logged in or out is based on user token, not ip address and it does not matter what user group you are assigned to as that is only relevant for the module (admin sections) authorizations etc.
The user token is stored in your session and passed along from page to page in the GET variables, those two have to be present and match at all times or you will be logged out.
As sessions are browser based you can actually be logged in twice as the very same user on the very same machine as long as you use different browsers.
So my quess is you either have a session/cookie issue or a user token issue or both.
Crystal Light Centrum Taiwan
Extensions: MailQueue | SUKHR | VBoces
“Data security is paramount at [...], and we are committed to protecting the privacy of anyone who is associated with our [...]. We’ve made a lot of improvements and will continue to make them.”
When you know your life savings are gone.
I am totally lost and don't know how i can solve it. It is soo important for us because we need a lot of person to work simultaneously.
Maybe i have to disable the admin extensions one by one to see if something will change?
First of all, do you see a message "invalid token session. Please login again." when you are logged out or no message at all?
for tracing you could make some changes in admin/controller/common/login.php
replace
Code: Select all
if ($this->user->isLogged() && isset($this->request->get['user_token']) && ($this->request->get['user_token'] == $this->session->data['user_token'])) {
$this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true));
}
with
Code: Select all
if ($this->user->isLogged() && isset($this->request->get['user_token']) && ($this->request->get['user_token'] == $this->session->data['user_token'])) {
$this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true));
} else {
// added for login trace start
$this->log->write('admin re-login required');
if ($this->user->isLogged()) $this->log->write('User logged in');
$this->log->write('GV user token: '.(isset($this->request->get['user_token']) ? $this->request->get['user_token'] : ''));
$this->log->write('SV user token: '.(isset($this->session->data['user_token']) ? $this->session->data['user_token'] : ''));
// added for login trace end
}
replace
Code: Select all
if ((isset($this->session->data['user_token']) && !isset($this->request->get['user_token'])) || ((isset($this->request->get['user_token']) && (isset($this->session->data['user_token']) && ($this->request->get['user_token'] != $this->session->data['user_token']))))) {
$this->error['warning'] = $this->language->get('error_token');
}
with
Code: Select all
if ((isset($this->session->data['user_token']) && !isset($this->request->get['user_token'])) || ((isset($this->request->get['user_token']) && (isset($this->session->data['user_token']) && ($this->request->get['user_token'] != $this->session->data['user_token']))))) {
$this->error['warning'] = $this->language->get('error_token');
// added for login trace start
$this->log->write('admin user token error');
$this->log->write('GV user token: '.(isset($this->request->get['user_token']) ? $this->request->get['user_token'] : ''));
$this->log->write('SV user token: '.(isset($this->session->data['user_token']) ? $this->session->data['user_token'] : ''));
// added for login trace end
}
That will write entries into your OC error log whenever a login is required and what the GET variable user token (GV) and the session user token (SV) are.
Remember, they both need to exist and match.
Crystal Light Centrum Taiwan
Extensions: MailQueue | SUKHR | VBoces
“Data security is paramount at [...], and we are committed to protecting the privacy of anyone who is associated with our [...]. We’ve made a lot of improvements and will continue to make them.”
When you know your life savings are gone.
Could be that one of your extensions forgot that that variable needs to be added from the session to the GET variables on all admin urls or the extension was written for version 2 where that variable is called token, someone thought it necessary to change that name in V3.
If you would get no error message but just the login screen, then your session is lost or simply expired and the system assumes you are a new user just like you would start to use admin from scratch.
Crystal Light Centrum Taiwan
Extensions: MailQueue | SUKHR | VBoces
“Data security is paramount at [...], and we are committed to protecting the privacy of anyone who is associated with our [...]. We’ve made a lot of improvements and will continue to make them.”
When you know your life savings are gone.

2019-12-05 7:31:07 - admin re-login required
2019-12-05 7:31:07 - User logged in
2019-12-05 7:31:07 - GV user token:
2019-12-05 7:31:07 - SV user token: fd7b9cr7iWERPUWXOoksTj6WL343QUEp
2019-12-05 7:31:12 - admin re-login required
2019-12-05 7:31:12 - User logged in
2019-12-05 7:31:12 - GV user token: fd7b9cr7iWERPUWXOoksTj6WL343QUEp
2019-12-05 7:31:12 - SV user token: hCIuWsCgzQcbC0uHs6WavzmqzFOfFinU
2019-12-05 7:31:12 - admin user token error
2019-12-05 7:31:12 - GV user token: fd7b9cr7iWERPUWXOoksTj6WL343QUEp
2019-12-05 7:31:12 - SV user token: hCIuWsCgzQcbC0uHs6WavzmqzFOfFinU
2019-12-05 7:31:18 - admin re-login required
2019-12-05 7:31:18 - User logged in
2019-12-05 7:31:18 - GV user token:
2019-12-05 7:31:18 - SV user token: hCIuWsCgzQcbC0uHs6WavzmqzFOfFinU
Strange.. well definitely becoming mismatched.
- Was this a fresh install of OC or did you upgrade from a previous version?
- Whats your PHP version?
Might just want to try and setup a fresh install on a sub-domain or something and see if can replicate on that.
Backup and learn how to recover before you make any changes!
first one:
Code: Select all
if ($this->user->isLogged() && isset($this->request->get['user_token']) && ($this->request->get['user_token'] == $this->session->data['user_token'])) {
$this->response->redirect($this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true));
} else {
// added for login trace start
$this->log->write('admin re-login required');
if ($this->user->isLogged()) {
$this->log->write('User logged in');
$this->log->write('User: '.$this->user->getUserName());
}
$this->log->write('Session: '.$this->session->getId());
$this->log->write('GV user token: '.(isset($this->request->get['user_token']) ? $this->request->get['user_token'] : ''));
$this->log->write('SV user token: '.(isset($this->session->data['user_token']) ? $this->session->data['user_token'] : ''));
// added for login trace end
}
second:
Code: Select all
if ((isset($this->session->data['user_token']) && !isset($this->request->get['user_token'])) || ((isset($this->request->get['user_token']) && (isset($this->session->data['user_token']) && ($this->request->get['user_token'] != $this->session->data['user_token']))))) {
$this->error['warning'] = $this->language->get('error_token');
// added for login trace start
$this->log->write('admin user token error');
$this->log->write('User: '.$this->user->getUserName());
$this->log->write('Session: '.$this->session->getId());
$this->log->write('GV user token: '.(isset($this->request->get['user_token']) ? $this->request->get['user_token'] : ''));
$this->log->write('SV user token: '.(isset($this->session->data['user_token']) ? $this->session->data['user_token'] : ''));
// added for login trace end
}
So you can also see which user it involves and which session id is referenced.
Crystal Light Centrum Taiwan
Extensions: MailQueue | SUKHR | VBoces
“Data security is paramount at [...], and we are committed to protecting the privacy of anyone who is associated with our [...]. We’ve made a lot of improvements and will continue to make them.”
When you know your life savings are gone.
The problem exist when i am trying to log in with the same Chrome, or chromium browser on linux, no matter from what computer i will try, from my laptop, from another desktop, it disconnecting all the other users that are logged in with chrome browesers on other computers.
Only thing I can think of is are you using the same chrome account on all computers? Chrome auto-syncs what you do via its account feature so you can move from pc to phone and back using chrome and it remembers what you were doing. Perhaps it is trying to sync the two computers since you say you are on the same internet connection and it is messing up the session id? Try creating a second chrome account for the other person and see if it triggers it when you are logged in on different chrome accounts.
Running Opencart v3.0.3.9 with multi-stores and the default template from https://www.labeshops.com which has links to all my stores.
Anyway thanks for your time i really appreciate your willingness to help me.!!!!!!!! (Really

Users browsing this forum: No registered users and 21 guests