mozilla

Compare Revisions

Quick setup

Change Revisions

Revision 119:

Revision 119 by MatildeOrourke on

Revision 120:

Revision 120 by amhnews on

Title:
Quick setup
Quick setup
Slug:
BrowserID/Quick_Setup
BrowserID/Quick_Setup
Tags:
Security, BrowserID
Security, BrowserID
Content:

Revision 119
Revision 120
nn7    <h2>
8      Load the BrowserID library
9    </h2>
t8      <a class="external" href="http://www.casino-start.com/">cast11      Include the BrowserID library from <a class="link-https" hr
>ino spiele</a> - casino-start.com/ , Adress:- Dubai # 334 245 , D>ef="https://browserid.org/include.js">https://browserid.org/inclu
>ede 23A Avenue everyone in our team, the Classic is one of the ab>de.js</a> in your site, making sure it gets loaded before calling
>solute top casinos. Can test it with the great starter package fo> any <a href="/en/BrowserID/navigator.id" title="navigator.id"><c
>r each player, the casino with real € 500, nothing can go wrong. >ode>navigator.id</code></a> functions.
>Microgaming provides the usual way for a top game atmosphere. 
12    </p>
13    <p>
14      For example:
15    </p>
16    <pre class="brush: html">
17&lt;script src="https://browserid.org/include.js" type="text/java
 >script"&gt;&lt;/script&gt;
18</pre>
19    <p>
20      The library is designed to be browser-neutral and works wel
 >l on all modern browsers.
21    </p>
22    <h2>
23      Ask the user to authenticate
24    </h2>
25    <p>
26      Add a sign-in button to your web page. While it's completel
 >y optional, you might want to use one of the following BrowserID 
 >buttons:
27    </p>
28    <p>
29      <img alt="A red sign in button" src="https://browserid.org/
 >i/sign_in_red.png"> <img alt="A blue sign in button" src="https:/
 >/browserid.org/i/sign_in_blue.png"> <img alt="A orange sign in bu
 >tton" src="https://browserid.org/i/sign_in_orange.png"> <img alt=
 >"A green sign in button" src="https://browserid.org/i/sign_in_gre
 >en.png"> <img alt="A grey sign in button" src="https://browserid.
 >org/i/sign_in_grey.png" style="">
30    </p>
31    <p>
32      For example:
33    </p>
34    <pre class="brush: html">
35&lt;a href="#" id="browserid" title="Sign-in with BrowserID"&gt;
36  &lt;img src="/images/sign_in_blue.png" alt="Sign in"&gt;
37&lt;/a&gt;
38</pre>
39    <p>
40      When the user clicks the sign-in button, call the <a href="
 >/en/DOM/navigator.id.get" title="navigator.id.get"><code>navigato
 >r.id.get()</code></a> function, passing in a callback function:
41    </p>
42    <pre class="brush: js">
43$(function() {
44  $('#browserid').click(function() {
45    navigator.id.get(gotAssertion);
46    return false;
47  });
48});
49</pre>
50    <p>
51      On success, the callback will be passed the <strong>asserti
 >on</strong>: this is a string containing a signed claim that the 
 >user owns a particular email address.
52    </p>
53    <h2>
54      Verify the assertion
55    </h2>
56    <p>
57      You'll need to send that assertion to your server for verif
 >ying, for example by using an AJAX request. In this example we ha
 >ve a service running at <code>/api/login</code> which receives an
 >d verifies assertions. If this service successfully verifies the 
 >assertion we update the UI by calling <code>loggedIn()</code>, ot
 >herwise we handle the login failure:
58    </p>
59    <pre class="brush: js">
60function gotAssertion(assertion) {
61  // got an assertion, now send it up to the server for verificat
 >ion
62  if (assertion !== null) {
63    $.ajax({
64      type: 'POST',
65      url: '/api/login',
66      data: { assertion: assertion },
67      success: function(res, status, xhr) {
68        if (res === null) {}//loggedOut();
69          else loggedIn(res);
70        },
71      error: function(res, status, xhr) {
72        alert("login failure" + res);
73      }
74    });
75  } else {
76    //loggedOut();
77  }
78}
79</pre>
80    <div class="note">
81      <strong>Note:</strong> It's important that the assertion is
 > verified on the server and not in the browser.
82    </div>
83    <p>
84      On the server, you must verify the assertion, and extract t
 >he user's email address from it.
85    </p>
86    <p>
87      The easiest way to do this is to use the free verification 
 >service provided by BrowserID. Send a POST request to <span class
 >="nowiki"><code>https://browserid.org/verify</code></span> with t
 >wo parameters:
88    </p>
89    <ul>
90      <li>
91        <code>assertion</code>: the encoded assertion
92      </li>
93      <li>
94        <code>audience</code>: the hostname and optional port of 
 >your site. This makes it harder for an assertion generated for so
 >meone else's site to be used to gain access to yours. You should 
 >specify the audience explicitly and not trust a parameter sent by
 > the user's browser such as <code>document.location</code>. The v
 >erification service will check that the audience you specify matc
 >hes the domain name included in the assertion.
95      </li>
96    </ul>
97    <div class="note">
98      <strong>Note:</strong> This call used to be a <code>GET</co
 >de>. As of October 13th, 2011, it must be a <code>POST</code>.
99    </div>
100    <p>
101      The verifier will check that the assertion was meant for yo
 >ur site and is valid. It responds with a JSON structure containin
 >g the assertion's contents and a status code
102    </p>
103    <p>
104      Suppose you have an assertion which asks <span class="nowik
 >i"><code>https://mysite.com</code></span> to accept the email add
 >ress <span class="nowiki"><code>lloyd@example.com</code></span>.
105    </p>
106    <p>
107      You can send it to <span class="nowiki"><code>https://brows
 >erid.org/verify</code></span>:
108    </p>
109    <pre>
110<code>$ curl -d "assertion=&lt;ASSERTION&gt;&amp;audience=https:/
 >/mysite.com" "https://browserid.org/verify"
111</code>
112</pre>
113    <p>
114      Here's the response:
115    </p>
116    <pre>
117{
118    "status": "okay",
119    "email": "lloyd@example.com",
120    "audience": "https://mysite.com",
121    "expires": 1308859352261,
122    "issuer": "browserid.org"
123}
124</pre>
125    <p>
126      You just need to check that the status is "okay", and if it
 > is, the user can be logged in. You can create a session for them
 > and set a cookie in their browser to identify the session.
127    </p>
128    <h2>
129      Implement logout
130    </h2>
131    <p>
132      You can implement logout by simply removing the user's sess
 >ion cookie. If you have implemented support for <a href="/en/Brow
 >serID/Advanced_Features" title="Advanced Features">persistent log
 >in</a>, then you also need to call {{ domxref("navigator.id.logou
 >t()") }}.
133    </p>
134    <p>
135      Depending on how long it's been since the user signed into 
 >their identity provider, the user might still have a valid user c
 >ertificate: if this is the case, then when the user logs back in,
 > they won't be asked for their BrowserID password. But they will 
 >still be asked to select an email address to use and to confirm t
 >hat they want to sign in.
136    </p>
137    <p>
138      {{ languages( { "en": "en/BrowserID/Quick_Setup", "es": "es
 >/BrowserID/Configuración_rápida" } ) }}

Back to History