Omeka S Scripto - Login Broken

I’ve followed your instructions, and it now states:
array(5) { ["plantsandpeople_dk_db_session/"]=> object(Laminas\Http\Header\SetCookie)#402 (13) { ["name":protected]=> string(29) "plantsandpeople_dk_db_session" ["value":protected]=> string(32) "4tgv5otrnl57q96sc2dcm8s622eil86k" ["version":protected]=> NULL ["maxAge":protected]=> NULL ["expires":protected]=> NULL ["domain":protected]=> NULL ["path":protected]=> string(1) "/" ["secure":protected]=> bool(false) ["quoteFieldValue":protected]=> bool(false) ["httponly":protected]=> bool(true) ["sameSite":protected]=> NULL ["encodeValue":protected]=> bool(false) ["type"]=> string(6) "Cookie" } ["UseDC/"]=> object(Laminas\Http\Header\SetCookie)#403 (13) { ["name":protected]=> string(5) "UseDC" ["value":protected]=> string(6) "master" ["version":protected]=> NULL ["maxAge":protected]=> int(10) ["expires":protected]=> int(1711047451) ["domain":protected]=> NULL ["path":protected]=> string(1) "/" ["secure":protected]=> bool(false) ["quoteFieldValue":protected]=> bool(false) ["httponly":protected]=> bool(true) ["sameSite":protected]=> NULL ["encodeValue":protected]=> bool(false) ["type"]=> string(6) "Cookie" } ["plantsandpeople_dk_dbUserID/"]=> object(Laminas\Http\Header\SetCookie)#434 (13) { ["name":protected]=> string(27) "plantsandpeople_dk_dbUserID" ["value":protected]=> string(1) "5" ["version":protected]=> NULL ["maxAge":protected]=> int(15552000) ["expires":protected]=> int(1726599441) ["domain":protected]=> NULL ["path":protected]=> string(1) "/" ["secure":protected]=> bool(false) ["quoteFieldValue":protected]=> bool(false) ["httponly":protected]=> bool(true) ["sameSite":protected]=> NULL ["encodeValue":protected]=> bool(false) ["type"]=> string(6) "Cookie" } ["plantsandpeople_dk_dbUserName/"]=> object(Laminas\Http\Header\SetCookie)#435 (13) { ["name":protected]=> string(29) "plantsandpeople_dk_dbUserName" ["value":protected]=> string(9) "Rich test" ["version":protected]=> NULL ["maxAge":protected]=> int(15552000) ["expires":protected]=> int(1726599441) ["domain":protected]=> NULL ["path":protected]=> string(1) "/" ["secure":protected]=> bool(false) ["quoteFieldValue":protected]=> bool(false) ["httponly":protected]=> bool(true) ["sameSite":protected]=> NULL ["encodeValue":protected]=> bool(true) ["type"]=> string(6) "Cookie" } ["plantsandpeople_dk_dbToken/"]=> object(Laminas\Http\Header\SetCookie)#438 (13) { ["name":protected]=> string(26) "plantsandpeople_dk_dbToken" ["value":protected]=> string(32) "07376af1bb4f9c72b323da8af0ecc1c7" ["version":protected]=> NULL ["maxAge":protected]=> int(15552000) ["expires":protected]=> int(1726599441) ["domain":protected]=> NULL ["path":protected]=> string(1) "/" ["secure":protected]=> bool(false) ["quoteFieldValue":protected]=> bool(false) ["httponly":protected]=> bool(true) ["sameSite":protected]=> NULL ["encodeValue":protected]=> bool(false) ["type"]=> string(6) "Cookie" } }

Dear Jim, I apologise for bothering you again.

Is there anything that can be worked out from the following session data?:
array(5) { [“plantsandpeople_dk_db_session/”]=> object(Laminas\Http\Header\SetCookie)#402 (13) { [“name”:protected]=> string(29) “plantsandpeople_dk_db_session” [“value”:protected]=> string(32) “4tgv5otrnl57q96sc2dcm8s622eil86k” [“version”:protected]=> NULL [“maxAge”:protected]=> NULL [“expires”:protected]=> NULL [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“UseDC/”]=> object(Laminas\Http\Header\SetCookie)#403 (13) { [“name”:protected]=> string(5) “UseDC” [“value”:protected]=> string(6) “master” [“version”:protected]=> NULL [“maxAge”:protected]=> int(10) [“expires”:protected]=> int(1711047451) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbUserID/”]=> object(Laminas\Http\Header\SetCookie)#434 (13) { [“name”:protected]=> string(27) “plantsandpeople_dk_dbUserID” [“value”:protected]=> string(1) “5” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1726599441) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbUserName/”]=> object(Laminas\Http\Header\SetCookie)#435 (13) { [“name”:protected]=> string(29) “plantsandpeople_dk_dbUserName” [“value”:protected]=> string(9) “Rich test” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1726599441) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(true) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbToken/”]=> object(Laminas\Http\Header\SetCookie)#438 (13) { [“name”:protected]=> string(26) “plantsandpeople_dk_dbToken” [“value”:protected]=> string(32) “07376af1bb4f9c72b323da8af0ecc1c7” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1726599441) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } }

Thanks for responding with this info; we’ll get back to you when we’ve had a chance to look it over.

Apologies for the delay. I was on holiday with my family.

Let’s review. From what I can deduce from your debugging, upon login, MediaWiki is returning a successful login response as well as well-formed login cookies. This is why you’re seeing the “Successfully logged into Scripto” message.

That’s great. But, somehow, the login cookies aren’t persisting across requests. Scripto sets the cookies to the session and expects them to be there during subsequent requests, but they’re not set anymore. This is why the user interface is showing that you’re not logged in.

I would suspect that the session is not working, but then logging into Omeka itself would be impossible. I suppose it could be something in your specific environment, such as a namespace conflict within the session? I’m stumped. I’ll look into this further and get back to you.

Let’s try a few more things.

First, log out of the Omeka administrative interface. Can you log back in? I suspect you can, but I want to confirm that your session isn’t broken in some unusual way.

Next, log into Scrpto, then add the following line to the end of ApiClient::__construct(), making sure you’ve removed all other debugging lines you’ve previously added:

var_dump($_SESSION['ScriptoMediawiki']);exit;

Refresh the page and copy the results here.

Dear Jim, No worries at all for the delays, I hope you’ve had a wonderful holiday with your family!

Here is the results of the var_dump($_SESSION['ScriptoMediawiki']);exit;:

object(Laminas\Stdlib\ArrayObject)#401 (4) { [“storage”:protected]=> array(1) { [“cookies”]=> array(5) { [“plantsandpeople_dk_db_session/”]=> object(Laminas\Http\Header\SetCookie)#402 (13) { [“name”:protected]=> string(29) “plantsandpeople_dk_db_session” [“value”:protected]=> string(32) “a7jd3klhuu8iht8cmbcb309uofvooe43” [“version”:protected]=> NULL [“maxAge”:protected]=> NULL [“expires”:protected]=> NULL [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“UseDC/”]=> object(Laminas\Http\Header\SetCookie)#403 (13) { [“name”:protected]=> string(5) “UseDC” [“value”:protected]=> string(6) “master” [“version”:protected]=> NULL [“maxAge”:protected]=> int(10) [“expires”:protected]=> int(1711652753) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbUserID/”]=> object(Laminas\Http\Header\SetCookie)#404 (13) { [“name”:protected]=> string(27) “plantsandpeople_dk_dbUserID” [“value”:protected]=> string(1) “5” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1727204743) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbUserName/”]=> object(Laminas\Http\Header\SetCookie)#435 (13) { [“name”:protected]=> string(29) “plantsandpeople_dk_dbUserName” [“value”:protected]=> string(9) “Rich test” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1727204743) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(true) [“type”]=> string(6) “Cookie” } [“plantsandpeople_dk_dbToken/”]=> object(Laminas\Http\Header\SetCookie)#436 (13) { [“name”:protected]=> string(26) “plantsandpeople_dk_dbToken” [“value”:protected]=> string(32) “07376af1bb4f9c72b323da8af0ecc1c7” [“version”:protected]=> NULL [“maxAge”:protected]=> int(15552000) [“expires”:protected]=> int(1727204743) [“domain”:protected]=> NULL [“path”:protected]=> string(1) “/” [“secure”:protected]=> bool(false) [“quoteFieldValue”:protected]=> bool(false) [“httponly”:protected]=> bool(true) [“sameSite”:protected]=> NULL [“encodeValue”:protected]=> bool(false) [“type”]=> string(6) “Cookie” } } } [“flag”:protected]=> int(2) [“iteratorClass”:protected]=> string(13) “ArrayIterator” [“protectedProperties”:protected]=> array(4) { [0]=> string(7) “storage” [1]=> string(4) “flag” [2]=> string(13) “iteratorClass” [3]=> string(19) “protectedProperties” } }

That’s interesting. Evidently, the MediaWiki cookies are persisting in the $_SESSION superglobal, but we determined above that the cookies are NULL when fetched via the Laminas session container.

To rule out a mistake in our troubleshooting, try this: log into Scrpto, remove all debugging lines you’ve previously added, and add the following lines to the end of ApiClient::__construct():

echo '<pre>';
var_dump($_SESSION['ScriptoMediawiki']['cookies']);
var_dump($this->session->cookies);
exit;

Refresh the page and copy the results here.

Here is the new output! Thank you for being so thorough!:

array(5) {
[“plantsandpeople_dk_db_session/”]=>
object(Laminas\Http\Header\SetCookie)#402 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_db_session”
[“value”:protected]=>
string(32) “ec7jhm1ui3r7u9a6fg3khub6qkqei31m”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
NULL
[“expires”:protected]=>
NULL
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserName/”]=>
object(Laminas\Http\Header\SetCookie)#403 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_dbUserName”
[“value”:protected]=>
string(9) “Rich test”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(true)
[“type”]=>
string(6) “Cookie”
}
[“UseDC/”]=>
object(Laminas\Http\Header\SetCookie)#404 (13) {
[“name”:protected]=>
string(5) “UseDC”
[“value”:protected]=>
string(6) “master”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(10)
[“expires”:protected]=>
int(1711656689)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserID/”]=>
object(Laminas\Http\Header\SetCookie)#435 (13) {
[“name”:protected]=>
string(27) “plantsandpeople_dk_dbUserID”
[“value”:protected]=>
string(1) “5”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbToken/”]=>
object(Laminas\Http\Header\SetCookie)#436 (13) {
[“name”:protected]=>
string(26) “plantsandpeople_dk_dbToken”
[“value”:protected]=>
string(32) “07376af1bb4f9c72b323da8af0ecc1c7”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
}
array(5) {
[“plantsandpeople_dk_db_session/”]=>
object(Laminas\Http\Header\SetCookie)#402 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_db_session”
[“value”:protected]=>
string(32) “ec7jhm1ui3r7u9a6fg3khub6qkqei31m”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
NULL
[“expires”:protected]=>
NULL
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserName/”]=>
object(Laminas\Http\Header\SetCookie)#403 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_dbUserName”
[“value”:protected]=>
string(9) “Rich test”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(true)
[“type”]=>
string(6) “Cookie”
}
[“UseDC/”]=>
object(Laminas\Http\Header\SetCookie)#404 (13) {
[“name”:protected]=>
string(5) “UseDC”
[“value”:protected]=>
string(6) “master”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(10)
[“expires”:protected]=>
int(1711656689)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserID/”]=>
object(Laminas\Http\Header\SetCookie)#435 (13) {
[“name”:protected]=>
string(27) “plantsandpeople_dk_dbUserID”
[“value”:protected]=>
string(1) “5”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbToken/”]=>
object(Laminas\Http\Header\SetCookie)#436 (13) {
[“name”:protected]=>
string(26) “plantsandpeople_dk_dbToken”
[“value”:protected]=>
string(32) “07376af1bb4f9c72b323da8af0ecc1c7”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
}

Hmm. They are identical, which doesn’t square with our previous troubleshooting.

Let’s see if the cookies are added to the HTTP client. Log into Scripto, remove all debugging lines you’ve previously added, and add the following line to the end of ApiClient::__construct():

echo '<pre>';var_dump($this->httpClient->getCookies());exit;

Refresh the page and copy the results here.

array(5) {
[“plantsandpeople_dk_db_session/”]=>
object(Laminas\Http\Header\SetCookie)#401 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_db_session”
[“value”:protected]=>
string(32) “ec7jhm1ui3r7u9a6fg3khub6qkqei31m”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
NULL
[“expires”:protected]=>
NULL
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserName/”]=>
object(Laminas\Http\Header\SetCookie)#402 (13) {
[“name”:protected]=>
string(29) “plantsandpeople_dk_dbUserName”
[“value”:protected]=>
string(9) “Rich test”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(true)
[“type”]=>
string(6) “Cookie”
}
[“UseDC/”]=>
object(Laminas\Http\Header\SetCookie)#403 (13) {
[“name”:protected]=>
string(5) “UseDC”
[“value”:protected]=>
string(6) “master”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(10)
[“expires”:protected]=>
int(1711656689)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbUserID/”]=>
object(Laminas\Http\Header\SetCookie)#434 (13) {
[“name”:protected]=>
string(27) “plantsandpeople_dk_dbUserID”
[“value”:protected]=>
string(1) “5”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
[“plantsandpeople_dk_dbToken/”]=>
object(Laminas\Http\Header\SetCookie)#435 (13) {
[“name”:protected]=>
string(26) “plantsandpeople_dk_dbToken”
[“value”:protected]=>
string(32) “07376af1bb4f9c72b323da8af0ecc1c7”
[“version”:protected]=>
NULL
[“maxAge”:protected]=>
int(15552000)
[“expires”:protected]=>
int(1727208679)
[“domain”:protected]=>
NULL
[“path”:protected]=>
string(1) “/”
[“secure”:protected]=>
bool(false)
[“quoteFieldValue”:protected]=>
bool(false)
[“httponly”:protected]=>
bool(true)
[“sameSite”:protected]=>
NULL
[“encodeValue”:protected]=>
bool(false)
[“type”]=>
string(6) “Cookie”
}
}

Interesting. Here we’ve confirmed that the cookies persist between requests, and they are successfully set to Scripto’s HTTP client. After taking out the debugging lines and refreshing the page, are you still logged out of Scripto?

I am yes, The option to log in is still there and the original problem persists.

Maybe MediaWiki isn’t accepting the cookies as valid for some reason? Though it doesn’t make sense that it’s passing authentication and returning well-formed cookies just to reject them as invalid on subsequent requests.

The only thing I can think of is some odd configuration in your specific client/server environment. Did Scripto work previously? If so, what changes have been made to your server environment that could possibility explain such behavior? Any recent upgrades to MediaWiki, Omeka S, or Scripto? Is your MediaWiki installation on the same server as Omeka S? These are just shots in the dark. I’m stumped.

Another shot in the dark: deactivate all modules except Scripto and try logging in again. Maybe there’s a conflict with another module?

Scripto was working previously, and we noticed this error only occurring in the past month. We have not made any changes to the server settings or MediaWiki. The only significant change that has been made in that time revolves around the installation of the ‘Common’ module as a replacement for ‘Generic’ on Omeka, but I do not see any reason why cookies would be affected by that.

If there are no other options, would it be necessary to then revert my Omeka S instance back to a previous backup to try and work back to a time when it did function?

This would be a real shame… but if there are no other options then I see no other way, because Scripto is necessary for the purpose of the Omeka S archive.

Again, thank you for your tireless help with this Jim!

The only significant change that has been made in that time revolves around the installation of the ‘Common’ module as a replacement for ‘Generic’ on Omeka, but I do not see any reason why cookies would be affected by that.

I also don’t see it as a reason why Scripto would suddenly stop working, but you should nevertheless try deactivating all modules except Scripto to check if there’s somehow a conflict.

If there are no other options, would it be necessary to then revert my Omeka S instance back to a previous backup to try and work back to a time when it did function?

Revert to what? Did you make any upgrades to Omeka S? If not, and there’s no conflict with another module, the problem likely isn’t related to Omeka or Scripto. I suspect a change to your MediaWiki installation or, more generally, your web server that went unnoticed.

I apologize for not finding the solution. I’ve conferred with my colleagues and they’re stumped as well. We’ll still give it some thought. Perhaps we’re missing something obvious.

By reverting to a past backup from my server, I just meant to say that I can test to see if something may have changed that I was not aware of - to see if the problem is still there before I installed new modules or made changes to the site CSS.

I have deactivated all the modules to see if there were any conflicts there, but the problem still appears to be persisting. I have also tried to revert any changes I have made to the appearance of the Scripto instance. It is a shame that a fix cannot be found for this strange cookie bug… but I nonetheless really appreciate your help Jim, and thank you for all your hard work!

Just to rule one more thing out, can you try logging out of Omeka S and logging back (so you have a new Omeka S session), and then trying to log into Scripto again?

Dear John,

I have just followed your instructions to log out of Omeka S and log back in, and sadly, this still has not fixed the issue. :frowning:

OK. The odd thing is, I don’t seem to have any issue registering and logging in to Scripto on your site’s public interface. Do you have the same problem if you try to log in from a different browser or computer?