User Tools

Site Tools


developers:integration:wsa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
developers:integration:wsa [2019/08/01 10:07]
tjotov removed
— (current)
Line 1: Line 1:
-====== Using ADUCID web service “WSA” ====== 
  
-See 
-  * [[developers:basic-overview|Server side integration basics]] 
-  * [[integration-api:start|ADUCID Integration API]] 
- 
-For detailed methods / classes / types description see [[http://wiki.aducid.com/client-api|Javadoc SDK Client API]] 
- 
-WSA is meant for all platforms like PHP, C# **except** Java (Java is also possible but we provide a full module so WSDL import is redundant). 
- 
-Web service is a standalone “application” which must be deployed on same server as AIM. Its default address is like this: 
- 
-<code> 
-https://hostname/wsa-json 
-</code> 
- 
-There you will see WSA Interface homepage where you can download WSDL file to generate client. 
- 
-<code> 
-https://hostname/wsa-json?wsdl 
-</code> 
- 
- 
-====== C# Example ====== 
- 
-=== Import WSDL into your project in Visual Studio. === 
- 
-Create an instance of **AducidApiJsonServiceClient**. 
- 
-=== Create a start operation Url === 
-This page starts authentication request. 
- 
-<sxh csharp> 
-var aducid = new AducidApiJsonServiceClient(); 
-string host = "http://" + HttpContext.Current.Request.Url.Host + ":" + HttpContext.Current.Request.Url.Port; 
-string query = context.Request.QueryString.ToString(); 
-var queryParsed = HttpUtility.ParseQueryString(query); 
-var generateQr = queryParsed["generateQrCodePicture"]; 
-var arg = new OperationArgument(); 
-//return URL for iOS 
-arg.peigReturnName = host + "/result"; 
-//QR code picture size 
-arg.qrCodePictureHeight = 300; 
-arg.qrCodePictureWidth = 300; 
-//tab helper If - if more authentication are in web browser in more tabs this help ti identify them - has to be unique 
-arg.id = "123"; 
-arg.generateQrCodePicture = generateQr == "true"; 
- 
-//JSON response from WSA 
-var response = aducid.startAuthenticationSession(JsonConvert.SerializeObject(arg)); 
-//parse and store authId 
-dynamic responseObj = JsonConvert.DeserializeObject(response); 
-//store authId in your session 
-context.Session["123"] = (string) responseObj.data.authId; 
-context.Response.ContentType = "text/plain"; 
-//send response 
-context.Response.Write(response); 
-</sxh> 
- 
-OperationArgument is a simple object 
-<sxh csharp> 
-public class OperationArgument 
-    { 
-        public String peigReturnName { get; set; } 
-        public int qrCodePictureHeight { get; set; } 
-        public int qrCodePictureWidth { get; set; } 
-        public String id { get; set; } 
-        public Boolean generateQrCodePicture { get; set; } 
-    } 
-</sxh> 
-=== Create WSA proxy === 
-Just simple "Rewrite" from WSA to C# with authId check 
-<sxh csharp> 
-var aducid = new AducidApiJsonServiceClient(); 
-string host = "http://" + HttpContext.Current.Request.Url.Host + ":" + HttpContext.Current.Request.Url.Port; 
-var response = aducid.getStatus((string)context.Session["123"]); 
-context.Response.ContentType = "text/plain"; 
-context.Response.Write(response); 
-</sxh> 
- 
-=== Create check Url === 
-On the result page we evaluate the authentication 
-There are two basic results – authentication is OK or an error is thrown: 
- 
-<sxh csharp> 
-var aducid = new AducidApiJsonServiceClient(); 
-//read authId from you session 
-string authId = (string)context.Session["123"]; 
-var aducidResult = aducid.getResult(authId, null); 
-//parse json 
-dynamic aducidResultObj = JsonConvert.DeserializeObject(aducidResult); 
-//User primary key i.e. UDI 
-var udi = aducidResultObj.data.userDatabaseIndex; 
-//key to further ADUCID operetions on user object (with authId) 
-string authKey2 = aducidResultObj.data.authKey2; 
-//prepare response 
-var response = aducid.endAuthenticationSession(authId, authKey2); 
-context.Response.ContentType = "text/plain"; 
-//OK do something with your session 
-//... 
-//send response 
-context.Response.Write(response); 
-</sxh> 
- 
- 
-=== Prepare a web page === 
-This page should contain [[integration-api:start|ADUCID Integration API]]\\ 
-Provide start, check and proxy Url. 
-<sxh>  
-   aducid.setStartOperationUrl("open"); 
-   aducid.setResultOperationUrl("openCheck"); 
-   aducid.setProxyUrl("proxy"); 
-</sxh> 
-Override what should be done after authentication / operation: 
-<sxh>  
-   aducid.processResult = function (result) { 
-                if (result.status == "OK") { 
-                    alert("atuhenticated"); 
-                    //location.reload(); 
-                } 
-                else { 
-                    alert("atuhentication failure"); 
-                } 
-            } 
-</sxh>  
- 
-And create some HTML elements: 
- 
-<sxh html> 
-<h1>ADUCID Hello World example</h1> 
-        <div class="row"> 
-            <div class="col-xs-8 col-xs-offset-2"> 
- 
-                <div class="row"> 
-                    <div class="col-xs-8 col-xs-offset-2"> 
-                        <div id="main-button" class="btn btn-primary btn-lg center-block">Authenticate</div> 
-                    </div> 
-                </div> 
-                <div class="row"> 
-                    <img id="qr-code" alt="" class="img-responsive center-block" /> 
-                </div> 
- 
-                <div class="row text-center"> 
-                    <div id="qr-code-timer" class="qr-code-timer img-responsive center-block"></div> 
-                    <div id="qr-code-hint" class="qr-code-hint"></div> 
-                </div> 
- 
-                <div id="peig-error" style="display: none;"> 
-                    <h2>PEIG Error</h2> 
-                    <a class='btn  btn-lg' href='http://www.aducid.com/support/' data-lang="aducid_common_installPeig">Install PEIG</a> 
-                    <br /> 
-                    <div class='btn btn-lg' onclick="location.reload()" data-lang="aducid_common_tryAgain">Try again</div> 
-                </div> 
-            </div> 
-        </div> 
-</sxh> 
developers/integration/wsa.1564654021.txt.gz · Last modified: 2019/08/01 10:07 by tjotov