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
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
More Decks by Massimiliano Pippi
See All by Massimiliano Pippi
Finding the needle: a deep dive into the rewriting of Haystack
masci
0
170
Project layout patterns in Go
masci
1
570
A Python and a Gopher walk into a bar - Embedding Python in Go. (dotGo2017)
masci
0
880
A Python and a Gopher walk into a bar - Embedding Python in Go.
masci
0
390
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
Getting Started with Vibe Coding
miccheng
0
140
Seven New Principles of Software Engineering
yegor256
0
400
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
120
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
170
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
0
100
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
ChromeでローカルLLM
ryu1013
0
180
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
330
LLM 101
dalinaum
0
430
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
270
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
520
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
290
WCS-LA-2024
lcolladotor
0
950
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
What's in a price? How to price your products and services
michaelherold
247
13k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.6k
Technical Leadership for Architectural Decision Making
baasie
3
620
Crafting Experiences
bethany
1
400
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
47k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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