I am still working through enabling badging.
Right now Im getting the error mentioned when I update user preferences after earning a badge.
I can’t change the profile picture, bio, similar for a long period.
I understand this may have to do with JWT.
Cant upload images as a new user
Im not sure how to get out of this error loop, obtain a new JWT token each time I earn a badge somehow?, as no error is being logged on lms or apache.
Thanks for reading this far
Looking at the logs I can get as far as requesting a user’s badge assertions then I am logged out.
Here is a gist showing what I can see https://gist.github.com/vicnete/143e8fab73137f37b6aadebea37dd35e
After a while it works and both of the requests include the username.
I am trying to figure out:
What may be causing this?
Why is it fixed after about 8 minutes?(some sort of user cache that logs me out when it is inconsistent is my best guess at the moment).
I have an idea of a fix for my situation, there is a solution manually and we could replicate what that solution is calling every time we issue a badge, but we need to get rid of the 8 minute/similar time cache.
Asking our users to wait around for 10 minutes before accessing their profile after earning a badge seems less than ideal.
We have a working fix using badgr-server without needing any model changes!! .
On badgr server code/apps/mainsite/settings.py go to middleware classes and remove/comment ‘badgeuser.middleware.InactiveUserMiddleware’,
Now go to badgr server /code/apps/issuer/admin.py and remove entity_id from the readonly fields of BadgeClassAdmin.
You would have to edit the slug using the barebones interface(can’t figure out the commit that made entity_id field readonly on badgr-ui).
Once it is editable you can make it match the query edx sends once a particular badge is earnt. Badge queries sent by edx follow the format openedx__coursebadgeslug provided that openedx__course is used as a issuing component and badgeslug is the slug we have defined for this badge class on edx from the admin panel.
I would expect the queries to follow the pattern of issuing componentbadgeslug if you don’t use openedx__course as an issuing component but I am afraid to test it out after seeing some odd behaviour when testing similar functionalities.
The solution described above, 2 single statement file changes on a badgr server instalation, works like a charm and doesnt kick the user out after earning a badge