$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Protect a Django REST api with Oauth2
Search
Massimiliano Pippi
April 10, 2015
Programming
0
180
Protect a Django REST api with Oauth2
Lightning talk for pycon15
Massimiliano Pippi
April 10, 2015
Tweet
Share
More Decks by Massimiliano Pippi
See All by Massimiliano Pippi
Finding the needle: a deep dive into the rewriting of Haystack
masci
0
110
Project layout patterns in Go
masci
1
520
A Python and a Gopher walk into a bar - Embedding Python in Go. (dotGo2017)
masci
0
810
A Python and a Gopher walk into a bar - Embedding Python in Go.
masci
0
320
How to port your Python software to Go without people noticing
masci
0
240
Python - Go One Way
masci
0
220
How we stopped using the mouse and started drawing molecules with our fingertips: not the usual porting story
masci
0
120
Django 1.7 on App Engine
masci
0
220
If code is poetry, then documentation is prose
masci
0
160
Other Decks in Programming
See All in Programming
Cell-Based Architecture
larchanjo
0
130
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
350
tparseでgo testの出力を見やすくする
utgwkk
2
230
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
340
Cap'n Webについて
yusukebe
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.9k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
410
TestingOsaka6_Ozono
o3
0
160
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Done Done
chrislema
186
16k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Site-Speed That Sticks
csswizardry
13
1k
Code Reviewing Like a Champion
maltzj
527
40k
[SF Ruby Conf 2025] Rails X
palkan
0
530
4 Signs Your Business is Dying
shpigford
186
22k
Mobile First: as difficult as doing things right
swwweet
225
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
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