Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Protect a Django REST api with Oauth2
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Massimiliano Pippi
April 10, 2015
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Protect a Django REST api with Oauth2
Lightning talk for pycon15
Massimiliano Pippi
April 10, 2015
Transcript
12 slides
Protect a Django REST API with OAuth2 Massimiliano Pippi @maxpippi
Introducing my friend Harold Let’s say we want to write
a timetracking web application y u not pushing? git push -f works lol
Backend recipe Django & Django REST Framework u can use
the new DRF3 generic views here wut?
Projects proliferation timetracker-backend timetracker-web timetracker-[android|ios] timetracker-desktop yep! I need an
app for my nokia 3210
How do we do access control? Third party apps want
to access our data as well! not ma problem can’t hear u
Common problems • Using user credentials inside the app is
a bad idea • The app might have full access to user account • User has to change his password to revoke the access
Multiple problems - one Solution The OAuth2 framework omg not
oauth again
Django OAuth Toolkit • Django 1.4 → 1.7 (1.8 coming
soon) • Python 2&3 • built on top of oauthlib, RFC 6749 compliant • DRF 2&3 integration https://github.com/evonove/django-oauth-toolkit
Batteries included • builtin views to register and manage OAuth2
applications • form view for user authorization lol I found what DRF stands for omg harold plz retire
Endpoints protection for the lazy • function views decorators @protected_resource()
def my_view(request): # A valid token is required to get here… • generic class based views class ApiEndpoint(ProtectedResourceView): def get(self, request, *args, **kwargs): return HttpResponse('Hello, OAuth2!')
DRF ootb integration REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'oauth2_provider.ext.rest_framework.OAuth2Authentication', )
}
Future plans - Help needed! OAuth1 support Resource and Authorization
server components separation https://github.com/evonove/django-oauth-toolkit +1 for my own PR
More Decks by Massimiliano Pippi
See All by Massimiliano Pippi
Finding the needle: a deep dive into the rewriting of Haystack
masci
0
180
Project layout patterns in Go
masci
1
580
A Python and a Gopher walk into a bar - Embedding Python in Go. (dotGo2017)
masci
0
890
A Python and a Gopher walk into a bar - Embedding Python in Go.
masci
0
400
How to port your Python software to Go without people noticing
masci
0
290
Python - Go One Way
masci
0
270
How we stopped using the mouse and started drawing molecules with our fingertips: not the usual porting story
masci
0
170
Django 1.7 on App Engine
masci
0
270
If code is poetry, then documentation is prose
masci
0
220
Other Decks in Programming
See All in Programming
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
180
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
350
なぜ私たちは「現時点では」KMPの導入を見送ったのか
chigichan24
0
160
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
310
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
2
370
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
9.1k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
エラーチャンネルのボールを拾い続けて鍛えるエンジニアの地力 / phpcon-niigata2026
meihei3
1
100
AI-Powered Domain-Driven Design
ziobrando
0
450
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
230
Seven New Principles of Software Engineering
yegor256
0
490
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
390
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
sira's awesome portfolio website redesign presentation
elsirapls
0
510
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
2
520
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.8k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
The Curse of the Amulet
leimatthew05
4
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
Site-Speed That Sticks
csswizardry
13
1.6k