1import{_ as o,r as p,o as i,c as l,b as s,d as a,a as e,e as r}from"./app-4488e322.js";const c={},u={href:"https://wordpress.org/plugins/smart-id/",target:"_blank",rel:"noopener noreferrer"},d={href:"https://id.eideasy.com/admin/clientlist",target:"_blank",rel:"noopener noreferrer"},k={href:"https://id.eideasy.com/admin/clientlist",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/thephpleague/oauth2-client",target:"_blank",rel:"noopener noreferrer"};function g(m,n){const t=p("ExternalLinkIcon");return i(),l("div",null,[n[10]||(n[10]=s("h1",{id:"turnkey-solution",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#turnkey-solution","aria-hidden":"true"},"#"),a(" Turnkey Solution")],-1)),s("p",null,[n[1]||(n[1]=a("Using WordPress? Our ",-1)),s("a",u,[n[0]||(n[0]=a("WordPress plugin",-1)),e(t)]),n[2]||(n[2]=a(" is all you need.",-1))]),n[11]||(n[11]=s("p",null,"Using anything else? No problem. Since our authentication is OAuth 2.0 based, there are ready-made libraries available for all major server-side languages and frameworks. All you need to know are the following parameters:",-1)),s("p",null,[n[4]||(n[4]=a("Client ID: copy this from ",-1)),s("a",d,[n[3]||(n[3]=a("My Webpages",-1)),e(t)])]),s("p",null,[n[6]||(n[6]=a("Client secret: copy this from ",-1)),s("a",k,[n[5]||(n[5]=a("My Webpages",-1)),e(t)])]),n[12]||(n[12]=s("p",null,[a("Authorize URL: "),s("code",null,"https://id.eideasy.com/oauth/authorize")],-1)),n[13]||(n[13]=s("p",null,[a("Access token URL: "),s("code",null,"https://id.eideasy.com/oauth/access_token")],-1)),n[14]||(n[14]=s("p",null,[a("User data URL: "),s("code",null,"https://id.eideasy.com/api/v2/user_data")],-1)),s("p",null,[n[8]||(n[8]=a("For example, in PHP you may wish to use ",-1)),s("a",v,[n[7]||(n[7]=a("thephpleague/oauth2-client",-1)),e(t)]),n[9]||(n[9]=a(":",-1))]),n[15]||(n[15]=r(`<div class="language-php line-numbers-mode" data-ext="php"><pre class="language-php"><code><span class="token variable">$provider</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name class-name-fully-qualified"><span class="token punctuation">\\</span>League<span class="token punctuation">\\</span>OAuth2<span class="token punctuation">\\</span>Client<span class="token punctuation">\\</span>Provider<span class="token punctuation">\\</span>GenericProvider</span><span class="token punctuation">(</span><span class="token punctuation">[</span> 2 <span class="token string single-quoted-string">'clientId'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'your_oauth2_client_id'</span><span class="token punctuation">,</span> 3 <span class="token string single-quoted-string">'clientSecret'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'your_oauth2_client_secret'</span><span class="token punctuation">,</span> 4 <span class="token string single-quoted-string">'redirectUri'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'http://your-site.com/your-redirect-url/'</span><span class="token punctuation">,</span> <span class="token comment">// The url that will run this code snippet</span> 5 <span class="token string single-quoted-string">'urlAuthorize'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'https://id.eideasy.com/oauth/authorize'</span><span class="token punctuation">,</span> 6 <span class="token string single-quoted-string">'urlAccessToken'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'https://id.eideasy.com/oauth/access_token'</span><span class="token punctuation">,</span> 7 <span class="token string single-quoted-string">'urlResourceOwnerDetails'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'https://id.eideasy.com/api/v2/user_data'</span> 8<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 9 10<span class="token comment">// If we don't have an authorization code then get one</span> 11<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'code'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> 12 13 <span class="token comment">// Fetch the authorization URL from the provider; this returns the</span> 14 <span class="token comment">// urlAuthorize option and generates and applies any necessary parameters</span> 15 <span class="token comment">// (e.g. state).</span> 16 <span class="token variable">$authorizationUrl</span> <span class="token operator">=</span> <span class="token variable">$provider</span><span class="token operator">-></span><span class="token function">getAuthorizationUrl</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
17 <span class="token comment">// Optional params</span> 18 <span class="token string single-quoted-string">'lang'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'en'</span><span class="token punctuation">,</span> 19 <span class="token comment">// ...</span> 20 <span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 21 22 <span class="token comment">// Get the state generated for you and store it to the session.</span> 23 <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'oauth2state'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$provider</span><span class="token operator">-></span><span class="token function">getState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 24 25 <span class="token comment">// Redirect the user to the authorization URL.</span> 26 <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Location: '</span> <span class="token operator">.</span> <span class="token variable">$authorizationUrl</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 27 <span class="token keyword">exit</span><span class="token punctuation">;</span> 28 29<span class="token comment">// Check given state against previously stored one to mitigate CSRF attack</span> 30<span class="token punctuation">}</span> <span class="token keyword">elseif</span> <span class="token punctuation">(</span><span class="token keyword">empty</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'state'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'oauth2state'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">&&</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'state'</span><span class="token punctuation">]</span> <span class="token operator">!==</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'oauth2state'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> 31 32 <span class="token keyword">exit</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Invalid state'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 33 34<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> 35 36 <span class="token comment">// Try to get an access token using the authorization code grant.</span> 37 <span class="token variable">$accessToken</span> <span class="token operator">=</span> <span class="token variable">$provider</span><span class="token operator">-></span><span class="token function">getAccessToken</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'authorization_code'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span> 38 <span class="token string single-quoted-string">'code'</span> <span class="token operator">=></span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'code'</span><span class="token punctuation">]</span> 39 <span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 40 41 <span class="token comment">// Using the access token, we may look up details about the</span> 42 <span class="token comment">
42// resource owner.</span> 43 <span class="token variable">$resourceOwner</span> <span class="token operator">=</span> <span class="token variable">$provider</span><span class="token operator">-></span><span class="token function">getResourceOwner</span><span class="token punctuation">(</span><span class="token variable">$accessToken</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 44 45 <span class="token variable">$ownerData</span> <span class="token operator">=</span> <span class="token variable">$resourceOwner</span><span class="token operator">-></span><span class="token function">toArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 46 47 <span class="token comment">// Bam! You can now access the user's identity in $ownerData.</span> 48 <span class="token keyword">echo</span> <span class="token string double-quoted-string">"Authenticated user's ID code: "</span> <span class="token operator">.</span> <span class="token variable">$ownerData</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'idcode'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> 49<span class="token punctuation">}</span> 50</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Optional redirect query parameters:</p><p><code>lang</code> â language of the user. Use 2-letter codes: (ISO 639-1)</p>`,3))])}const h=o(c,[["render",g],["__file","turnkey-solution.html.vue"]]);export{h as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.