Social Endpoints (djoser)
beta qualityとのこと
The list of providers is available at social backend docs.
url(r'^auth/', include('djoser.social.urls'))
/o/{{ provider }}/が生える
GET
クエリパラメタ redirect_uri
200 OKで authorization_url が返る
POST
パラメタ code, state (application/x-www-form-urlencoded)
201 でtokenが返る
実装
GETが実装されている
POSTはProviderAuthSerializerによる
GoogleOAuth2のbackendでbackend.auth_complete()が
social_core.exceptions.AuthStateMissing: Session value state missing.
auth_completeはBaseOAuth2に実装されている
self.validate_state()でエラー
OAuthAuthのvalidate_state
self.get_session_state()がNone
デバッグしたところDjangoStrategyのsession_get("google-oauth2_state")がNoneを返している
GETで設定すべき?(strategyのsession_setだとうまくいかない)
Browable APIならうまくいった(curlだからハマっていた)