]> git.parisson.com Git - django-social-auth.git/commitdiff
LiveJournal backend added to social_auth and example.
authorStas Kravets <skravets@internal-rfc1918.hn.nnov.stream.ru>
Wed, 12 Jan 2011 11:09:01 +0000 (14:09 +0300)
committerStas Kravets <skravets@internal-rfc1918.hn.nnov.stream.ru>
Wed, 12 Jan 2011 11:09:01 +0000 (14:09 +0300)
example/app/views.py
example/local_settings.py.template
social_auth/auth.py
social_auth/conf.py
social_auth/views.py

index 57cf0517b9467991d09e39ce4750ac20b65c944a..73c9618f52609188c05ab873e27286fb2b1ba9b5 100644 (file)
@@ -27,6 +27,13 @@ def home(request):
             <ul>
               <li><a href="/login/google/">Google</a></li>
               <li><a href="/login/yahoo/">Yahoo</a></li>
+              <li>
+                <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>
                 <form action="/login/openid/" method="post">{% csrf_token %}
                   <label for="openid_identifier">Other provider:</label>
index e43eba892d9a604a4488d5221778c3fd0f6eec60..8880d9ed3997e4ea9693d99bbb2d655d56b99f65 100644 (file)
@@ -9,4 +9,6 @@ SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
 SOCIAL_AUTH_DEFAULT_USERNAME      = 'socialauth_user'
 SOCIAL_AUTH_COMPLETE_URL_NAME     = 'social:complete'
 LOGIN_ERROR_URL                   = '/login/error/'
+
 #SOCIAL_AUTH_USER_MODEL            = 'app.CustomUser'
+
index c3ea7a9770d937184f4cea75183647d01673c057..bceee3e6dc8bd398624374a844b074cf68212dcc 100644 (file)
@@ -18,6 +18,7 @@ from .backends import TwitterBackend, OrkutBackend, FacebookBackend, \
                       OpenIDBackend
 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, \
                   TWITTER_REQUEST_TOKEN_URL, TWITTER_ACCESS_TOKEN_URL, \
                   TWITTER_AUTHORIZATION_URL, TWITTER_CHECK_AUTH, \
                   FACEBOOK_CHECK_AUTH, FACEBOOK_AUTHORIZATION_URL, \
@@ -151,6 +152,17 @@ class YahooAuth(OpenIdAuth):
         """Return Yahoo OpenID service url"""
         return OPENID_YAHOO_URL
 
+class LiveJournalAuth(OpenIdAuth):
+    """LiveJournal OpenID authentication"""
+    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:
+            raise ValueError, 'Missing LiveJournal user identifier'
+        return OPENID_LJ_URL % self.request.POST[OPENID_LJ_USER_FIELD]
 
 class BaseOAuth(BaseAuth):
     """OAuth base class"""
index 91cf7a5a3a4e4a687ffc2a107effdfc620ce542e..92cb89532e705598d26c7fe187c170675c468ba5 100644 (file)
@@ -36,9 +36,11 @@ AX_SCHEMA_ATTRS = [
     ('http://axschema.org/namePerson/last', 'last_name'),
     ('http://axschema.org/namePerson/friendly', 'nickname'),
 ]
-AX_ATTRS          = AX_SCHEMA_ATTRS + OLD_AX_ATTRS
-SREG_ATTR         = ['email', 'fullname', 'nickname']
-OPENID_ID_FIELD   = 'openid_identifier'
-SESSION_NAME      = 'openid'
-OPENID_GOOGLE_URL = 'https://www.google.com/accounts/o8/id'
-OPENID_YAHOO_URL  = 'http://yahoo.com'
+AX_ATTRS               = AX_SCHEMA_ATTRS + OLD_AX_ATTRS
+SREG_ATTR              = ['email', 'fullname', 'nickname']
+OPENID_ID_FIELD        = 'openid_identifier'
+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
index bb476891bdf5430b3a18f0a5f31ac4b05cedc2a0..88178cd292a210537ece4a392b2134fa7105a630 100644 (file)
@@ -7,7 +7,7 @@ from django.contrib.auth import login, REDIRECT_FIELD_NAME
 from django.contrib.auth.decorators import login_required
 
 from .auth import TwitterAuth, FacebookAuth, OpenIdAuth, GoogleAuth, \
-                  YahooAuth, OrkutAuth
+                  YahooAuth, LiveJournalAuth, OrkutAuth
 
 
 # Authentication backends
@@ -16,6 +16,7 @@ BACKENDS = {
     'facebook': FacebookAuth,
     'google': GoogleAuth,
     'yahoo': YahooAuth,
+    'lj': LiveJournalAuth,
     'openid': OpenIdAuth,
     'orkut': OrkutAuth,
 }