>
> I want something like this to work, but it doesn't, obviously.
>
> def logout():
> auth.logout()
> response.js = 'alert("goodbye world");'
> from gluon import HTTP
> HTTP(202)
> return dict()
>
> I've also tried auth.settings.logout_onlogout = [onlogoutfunction]
> but that's not working for me either.
auth.logout() does a redirect, so the above won't make it to your HTTP(202)
call. Also, response.js only works for Ajax requests for components (i.e.,
client-side calls to web2py_ajax_page(), which is what the LOAD helper
does).
How is the logout request made from the browser? If it is a regular full
page request, your controller needs to return a full page (probably via the
typical post-logout redirect), and that page then needs to include the
relevant JS code (e.g., in a <script> element). If the logout request is
made via Ajax, you might use the web2py ajax() function with ":eval" as the
third argument, and then simply return the JS you want to execute (":eval"
tells the ajax() function to execute the returned value as JS rather than
put it into a target element in the DOM).
Anthony