다시에보고 후, 내가 대답을 발견
authPlugins _ = [authOpenIdExtended [("openid.ns.ax", "http://openid.net/srv/ax/1.0"),
("openid.ax.mode", "fetch_request"),
("openid.ax.type.email", "http://axschema.org/contact/email"),
("openid.ax.required", "email")
]]
내가이 페이지에서이 값을 발견 :
https://developers.google.com/accounts/docs/OpenID을하고이를 확인
첫째, 우리는 올바른 매개 변수와 함께 authOpenIdExtended를 사용해야합니다 Google과 Yahoo와 협력 할 수 있습니다.
그런 다음 검색된 전자 메일 주소를 사용하기 위해 getAuthId에 전달 된 creds 매개 변수에 대해 "credsExtra creds"를 호출합니다. 그러면 OpenId 공급자의 응답이 포함 된 튜플 목록이 제공됩니다. 위의 매개 변수를 사용하여 authOpenIdExtended를 사용하면 값이 "openid.ax.value.email"(야후 용) 또는 "openid.ext1.value.email"(Google 용) 인 키/값 튜플에서 이메일을 찾습니다. Google이 "openid.ax.value.email"키도 사용하기를 기대했지만 충분히 가까웠습니다.
이 정보가 도움이되기를 바랍니다.
authOpenIdExtended (GoogleEmail.hs의 옵션 목록 복사)를 사용하는 방법을 이해하고 있다고 생각하지만, 일단 처리기에서 돌아 왔으면 이메일 주소를받는 방법을 알지 못합니다. GoogleEmail.hs에서 lookupGetParam에 대한 호출이 있지만 코드에 다시 들어가면 너무 늦습니다. 맞습니까? 무슨 일이 일어나고 있는지 내가 잘못 읽었나요? 중요하다면 나는 yesod-auth 1.0.1을 사용하고있다. –
이메일 주소를 중요하게 사용하지 않는 것에 관해서도 좋은 지적을합니다. 내 ID는 OpenId를 통해 반환 된 ID를 기반으로 할 것이므로 이메일 주소를 편리하게 사용하려고합니다. –
나는 authOpenIdExtended를 통해 직접 시도하지 않았지만 [credsExtra] (http://hackage.haskell.org/packages/archive/yesod-auth/1.0.2/doc/html/Yesod-Auth.html#v)라고 생각합니다. : credsExtra)에 필요한 정보가 있습니다. –