Manual CSRF check for Django Facebook canvas applications

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from django.views.decorators.csrf import csrf_view_exempt
from django.middleware.csrf import CsrfViewMiddleware
 
# Function to check CSRF on demand (use {% csrf_token %} in your forms as usual)
def facebook_csrf_check(request):
    return CsrfViewMiddleware().process_view(request, facebook_csrf_check, None, None) == None

# Your canvas view
@csrf_view_exempt
def facebook_canvas(request):
 
    if is_valid_access_token(request): # check whether a correct access_token presents
        # do something
 
    print 'CSRF ' + str(facebook_csrf_check(request)) # facebook_csrf_check == True means CSRF is OK

More like this

  1. Bypass CSRF check for Facebook canvas apps using POST for canvas by mjallday 2 years, 6 months ago
  2. SignedForm: CSRF-protect forms with a hidden token field by exogen 4 years, 9 months ago
  3. Django csrf_token Template Tag Fix by Reustle 2 years, 10 months ago
  4. Facebook Connect Middleware by bretwalker 4 years, 6 months ago
  5. Facebook shell by stephenemslie 3 years, 9 months ago

Comments

(Forgotten your password?)