Closed (outdated)
Project:
Drupal core
Version:
6.x-dev
Component:
openid.module
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
16 Nov 2009 at 22:49 UTC
Updated:
2 Mar 2016 at 22:18 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
vgarvardt commentedSorry, invalid patch from Mercurial diff. Here is updated patch
Comment #2
lilou commentedComment #4
vgarvardt commentedHere is fixed version of the patch.
It passes all OpenID tests on my dev environment.
Comment #5
vgarvardt commentedComment #6
moshe weitzman commentedsubscribe. we need some justification about why this deserves a code freeze exception. otherwise, this has to live in contrib for d7.
Comment #7
vgarvardt commentedOpenID is very useful technology and widely used. Drupal interface implementation is not the best in case of usability but it works. Usability can be improved with 3rd party modules (currently my module that should do this is in code review state), but there are some problems with OpenID backend implementation.
Currently there are 2 main OpenID extensions that implements attributes exchange between OpenID provider and consumer - SREG and AX. E.g. SREG is implemented in yandex.ru (nr 1 Russian search engine and nr 2 email hosting) and AX is implemented in google.com. This extensions allow consumer to request some info from provider (email, nickname, etc.).
OpenID implementation in Drupal supports only one extension - SREG. This means that it's impossible to request and fill in some info on registration in Drupal for providers, that does not implement SREG. Another thing about current Drupal implementation is that SREG request is always sent, does not matter if provider implements SREG or not.
My patch adds 2 things:
- support for AX OpenID extension
- verification for OpenID provider supported extensions (current Drupal implementation receives, but omits this) and data preparation for request
The only way I see this features can live as contributed module is to copy all OpenID module code, rename function names (to avoid conflicts with function names) and apply my patch. This is because OpenID module API is only 1 function - openid_begin(), all another functions are used internally. Also it provides 2 hooks - hook_openid to add request parameters, but does not provide info about provider supportes extensions, another one is hook_openid_response, that provides response from provider, but can not be used to override form values on registration form after response was received.
Comment #8
damien tournoud commentedImproved patch, loosely based on vgarvardt work:
openid.ns.ext1 = http://openid.net/srv/ax/1.0, even if the original request wasopenid.ns.ax = http://openid.net/srv/ax/1.0)This is absolutely necessary if we want to support Google Federated Login (which would be just awesome, given the huge installed user base), and is, all things considered, quite a minor change. See #727650: Support Google-specific OpenID discovery protocol.
Comment #9
damien tournoud commentedSame patch, improved code comments.
Comment #10
dries commentedCommitted to CVS HEAD.
Comment #11
c960657 commentedCool feature!
Follow-up issue: #740036: OpenID AX: Request nickname + support alternative namespaces
Comment #13
anarcat commentedCan we backport this patch 6.x, as recommended in #339600: support Google Federated Login OpenID?
Comment #14
vgarvardt commentedI'll update my D6 patch to support latest Drupal 6 code. Will post updated patch as soon as I can.
Comment #15
vgarvardt commentedHere is patch for D6 backported from #9 to 6.20.
I tested it with Google - works fine for me.
Comment #16
tuffnatty commentedHere is patch from #15 ported to D6.28.