-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Sam Goto
committed
Sep 3, 2024
1 parent
176abdd
commit 931272c
Showing
1 changed file
with
15 additions
and
95 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ ED: https://w3c-fedid.github.io/fedcm/login-status.html | |
Prepare for TR: true | ||
Repository: w3c-fedid/FedCM | ||
Editor: Christian Biesinger, w3cid 39461, Google Inc. https://google.com, [email protected] | ||
Editor: John Wilander, Apple Inc. https://apple.com, [email protected] | ||
Markup Shorthands: markdown yes, biblio yes | ||
Default Biblio Display: inline | ||
|
@@ -23,89 +24,26 @@ Abstract: A Web Platform API that allows websites to notify the browser when the | |
Test Suite: https://github.com/web-platform-tests/wpt/tree/master/fedcm | ||
</pre> | ||
|
||
<pre class=anchors> | ||
spec: ecma262; urlPrefix: https://tc39.github.io/ecma262/ | ||
type: dfn | ||
text: internal method; url: sec-ordinary-object-internal-methods-and-internal-slots | ||
|
||
spec: credential-management-1; urlPrefix: https://w3c.github.io/webappsec-credential-management/ | ||
type: dfn | ||
text: same-origin with its ancestors; url: same-origin-with-its-ancestors | ||
type: dfn | ||
text: requires user mediation; url: origin-requires-user-mediation | ||
spec: webdriver; urlPrefix: https://w3c.github.io/webdriver/ | ||
type: dfn | ||
text: endpoint node; url: dfn-endpoint-node | ||
text: extension capability; url: dfn-extension-capability | ||
text: getting a property; url: dfn-getting-properties | ||
text: matching capabilities; url: dfn-matching-capabilities | ||
text: no such alert; url: dfn-no-such-alert | ||
text: error code; url: dfn-error-code | ||
text: validating capabilities; url: dfn-validate-capabilities | ||
spec: webappsec-fetch-metadata; urlPrefix: https://w3c.github.io/webappsec-fetch-metadata/ | ||
type: dfn | ||
text: Directly User-Initiated Requests; url: directly-user-initiated | ||
</pre> | ||
|
||
<pre class=link-defaults> | ||
spec:infra; type:dfn; text:list | ||
spec:infra; type:dfn; text:user agent | ||
spec:html; type:dfn; for:environment settings object; text:global object | ||
spec:html; type:dfn; for:html-origin-def; text:origin | ||
spec:webidl; type:dfn; text:resolve | ||
spec:webdriver2; type:dfn; text:error | ||
spec:fetch; type:dfn; for:/; text:response | ||
</pre> | ||
|
||
<style> | ||
dl.domintro dt { | ||
font-family: Menlo, Consolas, "DejaVu Sans Mono", Monaco, monospace; | ||
|
||
padding-top: 0.5em; | ||
padding-bottom: 1em; | ||
} | ||
dl.domintro dt a { | ||
color: inherit; border-bottom-style: none; | ||
} | ||
dl.domintro dt code { | ||
font-size: inherit; | ||
} | ||
.idp-normative-text { | ||
background-color: rgba(165, 42, 42, 0.3); | ||
margin: 16px 0px; | ||
padding: 8px; | ||
border-left: 8px solid brown; | ||
} | ||
|
||
/* temporary fixes to the typogram diagrams | ||
to support dark mode properly */ | ||
script + svg :is(polygon, line, rect):not(.grid) { | ||
stroke: currentcolor; | ||
} | ||
script + svg :is(polygon, text) { | ||
fill: currentcolor; | ||
} | ||
</style> | ||
spec: credential-management-1; urlPrefix: https://w3c.github.io/webappsec-credential-management/ | ||
type: dfn | ||
text: same-origin with its ancestors; url: same-origin-with-its-ancestors</pre> | ||
|
||
<script src="https://fedidcg.github.io/FedCM/static/underscore-min.js"></script> | ||
<script src="https://fedidcg.github.io/FedCM/static/raphael.min.js"></script> | ||
<script src="https://fedidcg.github.io/FedCM/static/webfont.js"></script> | ||
<script src="https://fedidcg.github.io/FedCM/static/typogram.js"></script> | ||
|
||
<!-- ============================================================ --> | ||
# Introduction # {#introduction} | ||
<!-- ============================================================ --> | ||
|
||
*This section is non-normative.* | ||
|
||
Note: use the introduction from the explainer. | ||
Note: use the following introduction: https://github.com/fedidcg/login-status | ||
|
||
<!-- ============================================================ --> | ||
# The Login Status API # {#browser-api-login-status} | ||
# Login Status Map # {#hdr-login-status-map} | ||
<!-- ============================================================ --> | ||
|
||
## Login Status Map ## {#hdr-login-status-map} | ||
|
||
Each [=user agent=] keeps a global, persistent <dfn>Login Status | ||
map</dfn>, an initially empty [=map=]. The [=map/keys=] in this map are | ||
[=/origin=] (of [=IDPs=]), and the [=map/values=] are enums that can be one of | ||
|
@@ -127,7 +65,9 @@ value |value|: | |
|
||
</div> | ||
|
||
## HTTP header API ## {#login-status-http} | ||
<!-- ============================================================ --> | ||
# HTTP header API # {#login-status-http} | ||
<!-- ============================================================ --> | ||
|
||
[=IDPs=] can set the login status using an HTTP [=response=] [=header=] as follows. | ||
|
||
|
@@ -156,7 +96,9 @@ process this header as follows: | |
|
||
</div> | ||
|
||
## JavaScript API ## {#login-status-javascript} | ||
<!-- ============================================================ --> | ||
# JavaScript API # {#login-status-javascript} | ||
<!-- ============================================================ --> | ||
|
||
[=IDPs=] can also use a JavaScript API to update the stored login status: | ||
|
||
|
@@ -189,7 +131,9 @@ When {{NavigatorLogin/setStatus()}} is called with argument |status|: | |
|
||
</div> | ||
|
||
## Clearing the Login Status Map data ## {#login-status-clear-data} | ||
<!-- ============================================================ --> | ||
# Clearing the Login Status Map data # {#login-status-clear-data} | ||
<!-- ============================================================ --> | ||
|
||
User agents MUST also clear the [=Login Status map=] data when: | ||
: the user clears all cookies or site settings data | ||
|
@@ -232,30 +176,6 @@ Note: write down the Acknowledgements section. | |
|
||
<pre class="biblio"> | ||
{ | ||
"CM": { | ||
"href": "https://w3c.github.io/webappsec-credential-management/", | ||
"title": "Credential Management" | ||
}, | ||
"OIDC-Connect-Core": { | ||
"href": "https://openid.net/specs/openid-connect-core-1_0.html", | ||
"title": "OIDC Connect Core" | ||
}, | ||
"PERMISSIONS-POLICY": { | ||
"href": "https://w3c.github.io/webappsec-permissions-policy", | ||
"title": "Permissions Policy" | ||
}, | ||
"PRIVACY-MODEL": { | ||
"href": "https://github.com/michaelkleber/privacy-model", | ||
"title": "Privacy Model" | ||
}, | ||
"PRIVACY-THREAT-MODEL": { | ||
"href": "https://w3cping.github.io/privacy-threat-model/", | ||
"title": "Target Privacy Threat Model" | ||
}, | ||
"RFC7258": { | ||
"href": "https://datatracker.ietf.org/doc/html/rfc7258", | ||
"title": "Pervasive Monitoring Is an Attack" | ||
} | ||
} | ||
</pre> | ||
|
||
|