Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
170
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
68
Project layout patterns in Go
masci
1
490
A Python and a Gopher walk into a bar - Embedding Python in Go. (dotGo2017)
masci
0
740
A Python and a Gopher walk into a bar - Embedding Python in Go.
masci
0
240
How to port your Python software to Go without people noticing
masci
0
200
Python - Go One Way
masci
0
170
How we stopped using the mouse and started drawing molecules with our fingertips: not the usual porting story
masci
0
87
Django 1.7 on App Engine
masci
0
190
If code is poetry, then documentation is prose
masci
0
110
Other Decks in Programming
See All in Programming
SwiftUI Viewの責務分離
elmetal
PRO
1
230
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
110
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
380
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
310
定理証明プラットフォーム lapisla.net
abap34
1
1.8k
技術を根付かせる / How to make technology take root
kubode
1
250
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
5.3k
2024年のWebフロントエンドのふりかえりと2025年
sakito
2
250
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
260
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.3k
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
160
Featured
See All Featured
Site-Speed That Sticks
csswizardry
4
380
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Code Review Best Practice
trishagee
67
18k
Raft: Consensus for Rubyists
vanstee
137
6.8k
A designer walks into a library…
pauljervisheath
205
24k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Agile that works and the tools we love
rasmusluckow
328
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
A Philosophy of Restraint
colly
203
16k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Speed Design
sergeychernyshev
27
790
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