Hello,
I am having a bugger of a time trying to implement the DotNetNuke Google Authentication Project module. I have searched for many hours trying to find complete and clear documentation on how this module works, and I am falling short.
I have installed the GAP module and can successfully return a string from the Google API. However, DNN errors with the following:
AssemblyVersion:7.3.3
PortalID:0
PortalName:Southeastern Regional Vocational Technical High School
UserID:-1
UserName:
ActiveTabID:88
ActiveTabName:ADlogin
RawURL:/sersd/ADlogin?state=Google&code=4/PuKLdUTYEI94nA_2AMdatUjytl2xTvrGq-WGlL418D4.4nSVeAMMHPITJvIeHux6iLa7_ga7lAI
AbsoluteURL:/sersd/Default.aspx
AbsoluteURLReferrer:
UserAgent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke
ExceptionGUID:506c157a-4954-4e55-b20c-90ff0723ca72
InnerException:Value cannot be null. Parameter name: input
FileName:
FileLineNumber:0
FileColumnNumber:0
Method:System.Web.Script.Serialization.JavaScriptSerializer.Deserialize
StackTrace:
Message:
DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: input ---> System.ArgumentNullException: Value cannot be null. Parameter name: input at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) at DotNetNuke.Authentication.Google.Components.GoogleClient.GetToken(String responseText) at DotNetNuke.Services.Authentication.OAuth.OAuthClientBase.ExchangeCodeForToken() at DotNetNuke.Services.Authentication.OAuth.OAuthClientBase.AuthorizeV2() at DotNetNuke.Services.Authentication.OAuth.OAuthLoginBase. (EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
Source:
Server Name: SE-Webserver
I have found documentation on installing the module and registering with Google Developer, however it is very unclear to me, what DNN or the GAP module does when the Google authorization code/string is returned. I know there are further steps that need to be taken such as 'Exchange code for token' and 'Use token to call Google API's" as part of this process. My questions range from "Should my return uri listed in the Google Developer console be the same as my login page or is it the register page?" to "Is a new user created in DNN once authenticated by Google?" to "How can I manage DNN roles using Google Groups?".
As a Google school, we are attempting to implement a common document repository and calendaring system that will use Google contacts for view, edit and create rights in DNN. I have added Google Drive to our site using the iFrame module and if a user is signed into Google in another browser tab, permissions flow through the iFrame module to Google Drive. I wish however, to be able to grant rights to pages and modules the same way.
Can you please set my in the right direction?