I'm sorry, made a typo in patch above. Also changed code to be backwards
compatible with older web2py versions.
Updated PR and added new patch.
Op vrijdag 20 december 2013 20:58:11 UTC+1 schreef Peter Govers:
>
> It seems the Jainrain Legacy Sign-in Widget has hit its end-of-life and
> has been replaced by Social Sign-in Widget.
>
> I've changed RPXAccount login_form
> (gluon/contrib/login_methods/rpc_account.py) to migrate Janrain's Legacy
> Sign-in Widget to the current Social Sign-in Widget. For more info:
> http://developers.janrain.com/documentation/widgets/legacy-sign-in-widget/social-sign-in-migration-guide/
>
> I added a pull request on GitHub and also included a patch as attachment.
>
>
> Op vrijdag 20 december 2013 20:02:15 UTC+1 schreef Rene Dohmen:
>>
>> Hi,
>>
>> We use the janrain login method in a couple of our webapps. As of today
>> it suddenly stopped working...
>>
>> Are there any other users that use the janrain login methods? (and have
>> it working?)
>>
>> On the janrain site I found a story about and old and a new way to use
>> janrain. The Iframe way seems deprecated.
>>
>> Kind Regards Rene
>>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
diff --git a/gluon/contrib/login_methods/rpx_account.py b/gluon/contrib/login_methods/rpx_account.py
index 0cd1c56..d8c47eb 100644
--- a/gluon/contrib/login_methods/rpx_account.py
+++ b/gluon/contrib/login_methods/rpx_account.py
@@ -98,27 +98,32 @@ class RPXAccount(object):
def login_form(self):
request = self.request
args = request.args
- if self.embed:
- JANRAIN_URL = \
- "https://%s.rpxnow.com/openid/embed?token_url=%s&language_preference=%s"
- rpxform = IFRAME(
- _src=JANRAIN_URL % (
- self.domain, self.token_url, self.language),
- _scrolling="no",
- _frameborder="no",
- _style="width:400px;height:240px;")
- else:
- JANRAIN_URL = \
- "https://%s.rpxnow.com/openid/v2/signin?token_url=%s"
- rpxform = DIV(SCRIPT(_src="https://rpxnow.com/openid/v2/widget",
- _type="text/javascript"),
- SCRIPT("RPXNOW.overlay = true;",
- "RPXNOW.language_preference = '%s';" % self.language,
- "RPXNOW.realm = '%s';" % self.domain,
- "RPXNOW.token_url = '%s';" % self.token_url,
- "RPXNOW.show();",
- _type="text/javascript"))
- return rpxform
+ rpxform = """
+ <script type="text/javascript">
+ (function() {
+ if (typeof window.janrain !== 'object') window.janrain = {};
+ if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};
+ janrain.settings.tokenUrl = '%s';
+ function isReady() { janrain.ready = true; };
+ if (document.addEventListener) {
+ document.addEventListener("DOMContentLoaded", isReady, false);
+ } else {
+ window.attachEvent('onload', isReady);
+ }
+ var e = document.createElement('script');
+ e.type = 'text/javascript';
+ e.id = 'janrainAuthWidget';
+ if (document.location.protocol === 'https:') {
+ e.src = 'https://rpxnow.com/js/lib/%s/engage.js';
+ } else {
+ e.src = 'http://widget-cdn.rpxnow.com/js/lib/%s/engage.js';
+ }
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(e, s);
+ })();
+ </script>
+ <div id="janrainEngageEmbed"></div>""" % (self.token_url, self.domain, self.domain)
+ return XML(rpxform)
def use_janrain(auth, filename='private/janrain.key', **kwargs):