return HttpResponseRedirect('done')
else:
return render_to_response('home.html', None, RequestContext(request))
- <form action="/login/lj/" method="post">{% csrf_token %}
- <label for="openid_lj_user">LiveJournal user:</label>
- <input id="openid_lj_user" type="text" value="" name="openid_lj_user" />
- <input type="submit" />
- </form>
- </li>
- <li>
@login_required
def done(request):
'social_auth.backends.GoogleBackend',
'social_auth.backends.YahooBackend',
'social_auth.backends.OpenIDBackend',
+ 'social_auth.backends.LiveJournalBackend',
'django.contrib.auth.backends.ModelBackend',
)
<ul>
<li><a rel="nofollow" href="/login/google/">Google</a></li>
<li><a rel="nofollow" href="/login/yahoo/">Yahoo</a></li>
+ <li>
+ <form action="/login/livejournal/" method="post">{% csrf_token %}
+ <div>
+ <label for="openid_lj_user">LiveJournal user:</label>
+ <input id="openid_lj_user" type="text" value="" name="openid_lj_user" />
+ <input type="submit" value="Login"/>
+ </div>
+ </form>
+ </li>
<li>
<form action="/login/openid/" method="post">{% csrf_token %}
<div>
from .store import DjangoOpenIDStore
from .backends import TwitterBackend, OrkutBackend, FacebookBackend, \
- OpenIDBackend, GoogleBackend, YahooBackend
+ OpenIDBackend, GoogleBackend, YahooBackend, LiveJournalBackend
from .conf import AX_ATTRS, SREG_ATTR, OPENID_ID_FIELD, SESSION_NAME, \
OPENID_GOOGLE_URL, OPENID_YAHOO_URL, TWITTER_SERVER, \
- OPENID_LJ_URL, OPENID_LJ_USER_FIELD, \
+ OPENID_LIVEJOURNAL_URL, OPENID_LIVEJOURNAL_USER_FIELD, \
TWITTER_REQUEST_TOKEN_URL, TWITTER_ACCESS_TOKEN_URL, \
TWITTER_AUTHORIZATION_URL, TWITTER_CHECK_AUTH, \
FACEBOOK_CHECK_AUTH, FACEBOOK_AUTHORIZATION_URL, \
class LiveJournalAuth(OpenIdAuth):
"""LiveJournal OpenID authentication"""
+ AUTH_BACKEND = LiveJournalBackend
def uses_redirect(self):
"""LiveJournal uses redirect"""
return True
def openid_url(self):
"""Returns LJ authentication URL"""
- if self.request.method != 'POST' or OPENID_LJ_USER_FIELD not in self.request.POST or len(self.request.POST[OPENID_LJ_USER_FIELD]) == 0:
+ if self.request.method != 'POST' or not self.request.POST.get(OPENID_LIVEJOURNAL_USER_FIELD):
raise ValueError, 'Missing LiveJournal user identifier'
- return OPENID_LJ_URL % self.request.POST[OPENID_LJ_USER_FIELD]
+ return OPENID_LIVEJOURNAL_URL % self.request.POST[OPENID_LIVEJOURNAL_USER_FIELD]
class BaseOAuth(BaseAuth):
"""OAuth base class"""
'facebook': FacebookAuth,
'google': GoogleAuth,
'yahoo': YahooAuth,
+ 'livejournal': LiveJournalAuth,
'orkut': OrkutAuth,
'openid': OpenIdAuth,
}
if not getattr(settings, 'SOCIAL_AUTH_CHANGE_SIGNAL_ONLY', False):
for name, value in details.iteritems():
- # not update username if user already exists
- if not new_user and name == USERNAME:
- continue
+ # not update username if user already exists
+ if not new_user and name == USERNAME:
+ continue
if value and value != getattr(user, name, value):
setattr(user, name, value)
changed = True
class YahooBackend(OpenIDBackend):
"""Yahoo OpenID authentication backend"""
name = 'yahoo'
+
+class LiveJournalBackend(OpenIDBackend):
+ """LJ OpenID authentication backend"""
+ name = 'livejournal'
\ No newline at end of file
SESSION_NAME = 'openid'
OPENID_GOOGLE_URL = 'https://www.google.com/accounts/o8/id'
OPENID_YAHOO_URL = 'http://yahoo.com'
-OPENID_LJ_URL = 'http://%s.livejournal.com'
-OPENID_LJ_USER_FIELD = 'openid_lj_user'
\ No newline at end of file
+OPENID_LIVEJOURNAL_URL = 'http://%s.livejournal.com'
+OPENID_LIVEJOURNAL_USER_FIELD = 'openid_lj_user'
\ No newline at end of file