From fbc5816bc14ee1de69025e25f01d5fc58871d8e1 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Tue, 25 Jun 2019 16:27:12 +0200 Subject: [PATCH] Add Twitter as an Oauth1 login provider --- media/img/misc/btn_login_twitter.png | Bin 0 -> 2169 bytes pgweb/account/oauthclient.py | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 media/img/misc/btn_login_twitter.png diff --git a/media/img/misc/btn_login_twitter.png b/media/img/misc/btn_login_twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..3258f338840c8006d74deaaa27f5b19e0b14f147 GIT binary patch literal 2169 zcmV-<2!{8GP))1Vf$U{th-f{3huu>%_&N_@pvia;Vd9qN0gx!Fyna#03H04@fs zeWzj<{ARJ23+c2aXyH0V=m8Cmb%hR@XLi>{2Y;07Vt=_J)xq|EIn%@bV!1PJ(e|+Y z`sX2Bp$I*=!IA6Y=6X4agFSVzh;hr%<6FhjKxz!kStLTDhW+F$#|I7ZyY33l!1^L- zakh{yF{Vv@VY{+XJ?1lHp6sn~zxrwDO6cx~Gh@=oFir6cyt~%(+QCqBV954=v^eF_ z$^78=w|y3F@S79RbA-k>I3l_Y0E@GQqDlN8Psfg4(ar1WQ8X#Rrq2>+3t6K{4FK3w zD$h*ge*N!ATi9~2WLd88%A%B?9tt(}Sg(E>YLAR+w^0o``bGvfwRygB+^5%d7|DF& z?~X@Uh5*2_9AV=eY0D?QeecH&dKcyHs5C+o5gdnG^(EN?0Juf6@T)cj82!O^Od1*7RGy1H?z{D~p=lO? zMFBv!CiNMpp~*ZUgiLey&q+j<%u3_RrU;Ku7r7z+lCuA- zns7fz{wBA%nfx3t|KDyir1iHHGbja+dGhXBPmRwAY4njS{>Mw48|FxJy}VN-FE30v za8VOk*uT!x8nU*Qr94+6FUu90gJ#dI-5F>^GwFy6zftb$QSG*{4FKDgJJ%ITpEPLz zFx}1mw%mR2lJqTh30_S6Hgos zd2Y5eldo)y-*vf_)5L+-we7}aC-d?`<=GPXiJ4-Ki#ykC8a7BAytmfV8MS}D+^Jc# zDS$H_G&bUa&creB#4N{(JR$jpx?;9XN86h{bq8jwg6VbQpVtwx{%@O;X4O!0=%Sry=cTw)<*8&4SS?0VP zw7&mwaBEesQy|}&Cj)?G0{|?^5q4CEkF@HzxuY?ZI5-Yo((dRIjr0C7cmhx$PInxR zymX-VFAXY7VDo%s*J@XWbfY5$=^PNKYSI9pwb!a?yJcti_(Hr_qZWnQcHOIt(EZ^T zu4^|+ynNs6snKtq?K0Fm7_5?>W2Aa4L2LPxB{mN9)k;JnE_t&e| zs0YFs67%NQT;(&wG>PyGq>ALLdE$b}!p-xM3q2;sz>28?08DW*3#SOOFt}AaLY#bCO9+; zwpWKcA|o8Jj<)GX#$uk*t=ezZMjv^I-?`GY?`hAj)vm{Kh2PXfYJA2`^9#DWHu{a( z(w?W>&z8tlP1^WP+)uXa1?k+W&i?9Wt{Jm4xc>~AIDCFtd+}lUl|?BNUvA*FVZ)9i z;rw)N_ml3oo^sDjW8bS+amz;Iiafsa&@c}ZW(X|K7QXwitRxyRH};s@tHbeOPmGS= z!-^~N9Sa`fxBV-OzeR*5QlR1_&X9!GRFM;6Mo7cfp|uEVb~4YlKizsAVYv z%jBjjMjWr9LI@?rh=+626=p+OuG;O>BLQmR#Z(BPA=#FpM*?cMZ$nuwp_JA%`QJZw vxurW6)i65{LWwCNmzN=LEStJ$M*9B%qe>yxW)J|000000NkvXXu0mjfj(0Nf literal 0 HcmV?d00001 diff --git a/pgweb/account/oauthclient.py b/pgweb/account/oauthclient.py index e832d05d..86fc8b9b 100644 --- a/pgweb/account/oauthclient.py +++ b/pgweb/account/oauthclient.py @@ -256,6 +256,33 @@ def oauth_login_microsoft(request): _microsoft_auth_data) +# +# Twitter login +# Registration: https://developer.twitter.com/en/apps +# +def oauth_login_twitter(request): + def _twitter_auth_data(oa): + r = oa.get('https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true').json() + n = r['name'].split(None, 1) + while len(n) < 2: + # Handle single name names + n.append('') + + return ( + r['email'], + n[0], + n[1] + ) + + return _login_oauth1( + request, + 'twitter', + 'https://api.twitter.com/oauth/request_token', + 'https://api.twitter.com/oauth/access_token', + 'https://api.twitter.com/oauth/authorize', + _twitter_auth_data) + + def login_oauth(request, provider): fn = 'oauth_login_{0}'.format(provider) m = sys.modules[__name__] -- 2.39.5