Patent Description:
The present description relates generally to associating user accounts with content streaming devices, including associating multiple user accounts with a content streaming device.

A user may have multiple devices for accessing content from the user's online content library. For example, the devices may be configured to output content from the user's library, such as music and/or video.

Document <CIT> relates to methods, systems, and media for authentication of second screen user devices to a display device.

As noted above, a user may have multiple content output devices for accessing their content library (e.g., music and/or video). In some cases, the user may use his/her personal device (e.g., a mobile device such as a smartphone or smartwatch) in order to remotely control the output of content on a content output device (e.g., a content output device such a digital media player or a smart speaker in the user's household). For example, the mobile device and the content output device may be connected to a local area network within the user's household, and/or may be connected via a peer-to-peer connection. However, the user may also wish to invite another user (e.g., a household member such as a roommate and/or a family member) to access the content output device. The subject system provides for authorizing the other user (or users) to access content, e.g. from their own content library, on the content output device.

In particular, the other user receives (e.g., at their mobile device) an invitation (e.g., sent from the host user's mobile device) to access the content output device. The invitation includes user account identifiers (IDs) for the host user and/or the other user, and an identifier (ID) for the content output device. In response to receiving the invite, the invited user's mobile device sends a request (e.g., which includes the user account IDs and the output device ID) to a server, for authorization to access the content output device. The server sends, to the invited user's mobile device, the authorization to access the content output device. According to the invention, the authorization is implemented as a token which indicates the user account IDs and the output device ID. The invited user's mobile device may use the authorization (e.g., token) to access content (e.g., music and/or video from their own content library) via the content output device, while both the invited user's mobile device and the content output device are connected to the local area network and/or are connected via a peer-to-peer connection.

<FIG> illustrates an example network environment for authorizing a user account to access content on a device in accordance with one or more implementations. Not all of the depicted components may be used in all implementations, however, and one or more implementations may include additional or different components than those shown in the figure. Variations in the arrangement and type of the components may be made without departing from the scope of the claims as set forth herein. Additional components, different components, or fewer components may be provided.

The network environment <NUM> includes electronic devices <NUM>, <NUM>, <NUM>, <NUM> and <NUM> (hereinafter "the electronic devices <NUM>-<NUM>"), a media content server <NUM>, an identity management server <NUM> and a cloud storage server <NUM> (hereinafter "the servers <NUM>-<NUM>"), and a network <NUM>. The network <NUM> may communicatively (directly or indirectly) couple, for example, any two or more of the electronic devices <NUM>-<NUM> and the servers <NUM>-<NUM>. In one or more implementations, the network <NUM> may be an interconnected network of devices that may include, and/or may be communicatively coupled to, the Internet. In one or more implementations, the network <NUM> may correspond to a local area network (e.g., a WiFi network) connecting one or more of the electronic devices <NUM>-<NUM>. For explanatory purposes, the network environment <NUM> is illustrated in <FIG> as including electronic devices <NUM>-<NUM> and servers <NUM>-<NUM>; however, the network environment <NUM> may include any number of electronic devices and any number of servers.

One or more of the electronic devices <NUM>-<NUM> may be, for example, a portable computing device such as a laptop computer, a smartphone, a smart speaker, a digital media player, a peripheral device (e.g., a digital camera, headphones), a tablet device, a wearable device such as a smartwatch, a band, and the like, or any other appropriate device that includes, for example, one or more wireless interfaces, such as WLAN radios, cellular radios, Bluetooth radios, Zigbee radios, near field communication (NFC) radios, and/or other wireless radios. In <FIG>, by way of example, the electronic device <NUM> is depicted as a smartphone, the electronic device <NUM> is depicted as a laptop computer, the electronic device <NUM> is depicted as a smartwatch, and the electronic device <NUM> is depicted as a smart speaker. By way of example, the electronic device <NUM> is depicted as a digital media player (e.g., configured to receive digital data such as music and/or video and stream it to a television or other video display). In one or more implementations, the electronic device <NUM> may be integrated into the display device.

One or more of the electronic devices <NUM>-<NUM> may be configured to communicate or otherwise interact with one or more of the servers <NUM>-<NUM>. Each of the electronic devices <NUM>-<NUM> may be, and/or may include all or part of, the device discussed below with respect to <FIG>, and/or the electronic system discussed below with respect to <FIG>.

In one or more implementations, the media content server <NUM> may be configured to provide media content (e.g., via streaming and/or download) for outputting on a device (e.g., one or more of the electronic devices <NUM>-<NUM>). The identity management server <NUM> may be configured to verify and/or manage identifiers (IDs) associated with user accounts and/or devices. The cloud storage server <NUM> may be configured to store data (e.g., files such as documents and/or photos) associated with user accounts for download on user devices, to share and/or send data to other users, and/or to back-up (e.g., wirelessly) device data. Moreover, in one or more implementations, users may have user accounts that are managed by the identity management server <NUM>, and the user accounts may be associated with content libraries (e.g., music and/or video content) provided by the media content server <NUM>.

One or more of the servers <NUM>-<NUM> may be, and/or may include all or part of the electronic system discussed below with respect to <FIG>. Each of the servers <NUM>-<NUM> may include one or more servers, such as a cloud of servers. For explanatory purposes, a single server is shown and discussed with respect to various operations for each of the servers <NUM>-<NUM>. However, these and other operations discussed herein may be performed by one or more servers, and each different operation may be performed by the same or different servers.

<FIG> illustrates an example device that may implement a system for authorizing a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, <FIG> is primarily described herein with reference to the electronic device <NUM> of <FIG>. However, <FIG> may correspond to any of the electronic devices <NUM>-<NUM> of <FIG>. Not all of the depicted components may be used in all implementations, however, and one or more implementations may include additional or different components than those shown in the figure. Variations in the arrangement and type of the components may be made without departing from the scope of the claims as set forth herein. Additional components, different components, or fewer components may be provided.

The electronic device <NUM> may include a processor <NUM>, a memory <NUM>, and a communication interface <NUM>. The processor <NUM> may include suitable logic, circuitry, and/or code that enable processing data and/or controlling operations of the electronic device <NUM>. In this regard, the processor <NUM> may be enabled to provide control signals to various other components of the electronic device <NUM>. The processor <NUM> may also control transfers of data between various portions of the electronic device <NUM>. Additionally, the processor <NUM> may enable implementation of an operating system or otherwise execute code to manage operations of the electronic device <NUM>.

The memory <NUM> may include suitable logic, circuitry, and/or code that enable storage of various types of information such as received data, generated data, code, and/or configuration information. The memory <NUM> may include, for example, random access memory (RAM), read-only memory (ROM), flash, and/or magnetic storage.

In one or more implementations, the memory <NUM> may store one or more applications for remotely controlling the playback of content on another device (e.g., the electronic devices <NUM> and/or <NUM>). Examples of such applications, include but not are limited to, a control application, a virtual assistant application and/or a remote control application.

The communication interface <NUM> may include suitable logic, circuitry, and/or code that enables wired or wireless communication, such as between any of the electronic devices <NUM>-<NUM> and one of more of the servers <NUM>-<NUM> over the network <NUM>. The communication interface <NUM> may include, for example, one or more of a Bluetooth communication interface, a cellular interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, or generally any communication interface.

In one or more implementations, one or more of the processor <NUM>, the memory <NUM>, the communication interface <NUM>, and/or one or more portions thereof, may be implemented in software (e.g., subroutines and code), may be implemented in hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable devices) and/or a combination of both.

<FIG> illustrates an example process <NUM> for authorizing a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, the process <NUM> is primarily described herein with reference to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>. However, the process <NUM> is not limited to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>, and one or more blocks (or operations) of the process <NUM> may be performed by one or more other components and/or other suitable devices (e.g., any of the electronic devices <NUM>-<NUM>). Further for explanatory purposes, the blocks of the process <NUM> are described herein as occurring in serial, or linearly. However, multiple blocks of the process <NUM> may occur in parallel. In addition, the blocks of the process <NUM> need not be performed in the order shown and/or one or more blocks of the process <NUM> need not be performed and/or can be replaced by other operations.

In the example of <FIG>, the electronic device <NUM> may correspond to a device associated with a user account of a first user (e.g., named "Alison"). Alison may reside in or be a guest of a home/residence (hereinafter "home") that is also the home of a second user (e.g., named "Bob"). The electronic devices <NUM> and <NUM> may correspond to devices associated with Bob's user account, and may be connected to a local area network of the home. In one or more implementations, Bob may interact with the electronic device <NUM> (e.g., via a remote control application, control application or virtual assistant application running on the electronic device <NUM>) in order to access and/or output content (e.g., music from Bob's online content library) on the electronic device <NUM>.

However, Bob may also wish to invite Alison to access the electronic device <NUM> while connected to the local area network. The process <NUM> illustrates an example of Bob sending an invitation to Alison, so that Alison may interact with her electronic device <NUM> (e.g., via a remote control application, control application or virtual assistant application running on the electronic device <NUM>) in order to access, and/or output content (e.g., music from Alison's online content library) on, the electronic device <NUM>. After accepting the invitation, Alison may use her electronic device <NUM> as a remote control in order to output content (e.g., content that is streamed via the media content server <NUM> in association with her user account) on the electronic device <NUM>.

In one or more implementations, each of the remote control application, the control application and the virtual assistant application may be implemented as part an operating system running on the electronic device <NUM> (or the electronic device <NUM>) or may be a third party application. Each of these applications may be configured to receive user input, in order to output content on the electronic device <NUM>.

For example, the remote control application may allow for remote control of another device (e.g., the electronic device <NUM> or <NUM>), for example, that is connected on the same local area network (e.g., WiFi) as the electronic device <NUM>. The control application may provide direct access to predefined settings for the electronic device <NUM>, including remote control of another device. The control application may be activated, for example, via a predefined user gesture (e.g., swiping up from the bottom of the display of the electronic device <NUM>). The virtual assistant application may use voice queries and a natural-language user interface to perform actions (e.g., remote control actions) by delegating requests to a set of services (e.g., Internet services and/or services within a local area network).

Alternatively or in addition, Alison may access her media content (e.g., music and/or video) on the electronic device <NUM> (e.g., and/or the electronic device <NUM>) without use of her electronic device <NUM>. For example, the electronic device <NUM> (e.g., smart speaker) may have a virtual assistant application running thereon, and Alison may provide a voice command to stream music via the media content server <NUM> in association with her user account. In another example, the electronic device <NUM> (e.g., digital media player) may have a separate remote control device that Alison can use to stream video and/or music via the media content server <NUM> in association with her user account.

The electronic device <NUM> may provide a user interface (e.g., as part of an application for inviting/authorizing user account(s) to access content on Bob's devices) which allows Bob to invite Alison to access the electronic device <NUM>. In response to user input via the user interface to send the invitation, the electronic device <NUM> sends the invitation to Alison's electronic device <NUM> (<NUM>). In one or more implementations, the invitation may include multiple identifiers, including: a home ID 'H' for identifying the home, Bob's ID 'B' for identifying a user account of Bob, Alison's ID 'A' for identifying a user account of Alison, and Alison's ID 'α' for identifying Alison within the home. In one or more implementations, Alison's ID α is an optional identifier. In other words, ID α may be replaced with ID A with respect to identifying Alison within the home.

As seen in <FIG>, the electronic device <NUM> may include a messaging system client <NUM> and an authentication client <NUM>. For example, the messaging system client <NUM> may be configured to send/receive messages with other electronic devices (e.g., the electronic devices <NUM>, <NUM>) and/or servers (e.g., the cloud storage server <NUM>). The authentication client <NUM> may be configured to communicate with the identity management server <NUM>, in order to authenticate the user account of Alison (e.g., via Alison's ID A), and/or other accounts using appropriate IDs.

After receiving the invitation, the electronic device <NUM> may provide a user interface for Alison to accept the invite. For example, the user interface may be part of a notification provided by an operating system running (e.g., or an application associated with authorizing user account(s) to access another user's home devices) on the electronic device <NUM>.

As noted above, Bob's user account may be associated with multiple electronic devices (e.g., the electronic devices <NUM> and <NUM>) that he may invite Alison to use, e.g., for output of content. In such a case, the user interface for Alison to accept the invite may include a user-selectable list of the electronic device(s) for outputting content, and Alison may individually select which of those devices she would like use for accessing content (e.g., associated with Alison's user account). After making such selection (if applicable), Alison may accept the invite via the user interface (<NUM>).

In response to Alison accepting the invite, the electronic device <NUM> may create a shared record (e.g., or cloud container, discussed below with respect to operation <NUM>). To establish the shared record, the messaging system client <NUM> may send a message to the electronic device <NUM> (<NUM>). The electronic device <NUM> may receive this message, for example, via a respective messaging client system (not shown) on the electronic device <NUM>. The messaging client system of the electronic device <NUM> may inform a respective authentication client (not shown) on the electronic device <NUM>. The authentication client of the electronic device <NUM> may send a confirmation message (e.g., including Alison's ID A, home ID H and Bob's ID B) to the identity management server <NUM> (<NUM>). The confirmation message may confirm to the identity management server <NUM> that Bob had sent the invite to Alison.

In one or more implementations, the identity management server <NUM> may save this state (e.g., confirmation), and require it to have happened in order to issue a token at operation <NUM> discussed below. The authentication client of the electronic device <NUM> may inform the messaging client system of the electronic device <NUM> of completion, and the messaging client of the electronic device <NUM> may accept the shared record. Moreover, in one or more implementations, the identity management server <NUM> may generate a nonce N, corresponding to a unique identifier that is known (e.g., and saved) by the identity management server <NUM>. The identity management server may provide the nonce N to the messaging system client <NUM> (<NUM>).

The messaging system client <NUM> may send a request to the authentication client <NUM> for a home token T (<NUM>). For example, the home token T may provide Alison with the authorization to access the electronic device <NUM>, such as to output content from Alison's content library managed by the media content server <NUM>. In the example of <FIG>, the request for the home token T may include Alison's ID A, home ID H and the nonce N.

The authentication client <NUM> sends a request (e.g., including IDs A, H and N) to the identity management server <NUM>, for verification (<NUM>). In one or more implementations, the request to authenticate the user may be a silent authentication which does not require Alison to manually provide user credentials. In one or more implementations, Alison's electronic device <NUM> may request that Alison authenticate in order to obtain the home token.

The identity management server <NUM> may verify the IDs A and H, by verifying that A is an ID that identifies the user account of Alison, and H is an ID that identifies the home (e.g., of Bob), and may further verify the nonce N. After such verification, the identity management server <NUM> may generate a home token T based on the IDs A, H and the nonce N, and send the home token back to the authentication client <NUM> of the electronic device <NUM> (<NUM>). In one or more implementations, based at least partly on the nonce N, the home token T indicates that Bob has authorized Alison (e.g., identified by ID A) to use the device(s) (e.g., the electronic device <NUM>, or other devices such as the electronic device <NUM>) in Bob's home (e.g., identified by H), such as for outputting content. The authentication client <NUM> may pass the home token T to the messaging system client (<NUM>).

The messaging system client <NUM> may then send a request to the cloud storage server <NUM>, where the request is to store a cloud container (e.g., corresponding to the shared record established at operation <NUM>) which includes the home token T and the IDs A, α and H on the cloud storage server <NUM> (<NUM>). As noted above, the cloud storage server <NUM> may be configured to store data (e.g., files such as documents and/or photos) in association with user accounts for download on user devices, to share and/or send data to other users, and to back-up (e.g., wirelessly) device data.

The cloud storage server <NUM> may pass the record (e.g., including the home token T and the IDs A, α and H) to the electronic device <NUM> (<NUM>). The electronic device <NUM> may verify that Alison's ID α is still associated with the home ID H associated with Bob's account (<NUM>). If verified, the electronic device <NUM> sends the home token T and the IDs A and H to the media content server <NUM> (<NUM>). As noted above, the media content server <NUM> may be configured to provide (e.g., stream or provide as a download) media content associated with the user account of Alison. In the example of <FIG>, the user account ID A may apply to both the media content server <NUM> (e.g., associated with Alison's media library, such as for music and/or video) and the cloud storage server <NUM> (e.g., associated with Alison's files, such as documents and/or photos). However, as discussed below with respect to <FIG>, the user account IDs for the media content server <NUM> and the cloud storage server <NUM> may be different, if Alison has a split account.

The media content server <NUM> sends a request to validate the home token T to the identity management server <NUM> (<NUM>). The identity management server <NUM> verifies that the home token T was issued to Alison's user account ID A for the home ID H, and further verifies that the electronic device <NUM> still belongs to Bob (<NUM>). The identity management server <NUM> returns a verification result to the media content server <NUM> (<NUM>).

In a case where the verification result indicates that the home token T is not valid, the media content server <NUM> sends a message (e.g., a push notification) to the messaging system client <NUM>, for example, indicating a token failure (<NUM>). Upon receipt of this message, the messaging system client <NUM> may be configured to resume back to operation <NUM> (e.g., to request a valid token). In addition, the media content server <NUM> sends an indication of the token failure to the electronic device <NUM> (<NUM>).

In a case where the verification result indicates that the home token T is valid, the media content server <NUM> generates and sends a token (e.g., a low-value token) to the electronic device <NUM> (<NUM>). The low-value token may be used for outputting content associated with Alison's user account from the media content server <NUM> to the electronic device <NUM>. In other words, Alison may be able to interact with her electronic device <NUM> (e.g., via a remote control application, a control application and/or a virtual assistant application) in order to select media content for output on the electronic device <NUM>.

As noted above, the media content may be selected based on content that is available/associated with the user account of Alison (e.g., individual songs, playlists and/or videos within a media library of Alison). Alternatively or in addition, Alison may be able to select content that is available/associated with the user account of Bob (e.g., individual songs, playlists and/or videos within a media library of Bob), since the electronic device <NUM> is also associated with Bob's user account.

Thus, in one or more implementations, Alison may be able to access media content associated with Bob's user account and/or Bob may be able to access media content associated with Alison's user account, as long as both Bob and Alison's user accounts are authorized to output to the electronic device <NUM>, or to other devices within the home (e.g. the electronic device <NUM>). For example, with respect to the electronic device <NUM> (e.g., digital media player), Alison may be able to select her account or Bob's account before selecting the content for output. After selection, the electronic device <NUM> may use the account settings for the respective user account (e.g., Alison's or Bob's) in order to populate the list of available content, user preferences and/or other user settings for display on the electronic device <NUM>.

In one or more implementations, the token may be "low-value" in that the token is limited to the automatic access/output of content that is free and/or previously purchased. For example, Alison may simply select media content (e.g., music and/or video) for output, and the electronic device <NUM> may automatically output the content, in cases where the content is free and/or previously purchased (e.g., in association with Alison or Bob's user account). However, in cases where the content requires payment (e.g., in order to stream and/or download the content), the media content server <NUM> may prompt Alison for a password (e.g., associated with Alison's user account, Bob's user account and/or the home account (ID H)), in order for Alison to purchase the content for output (e.g., on the electronic device <NUM>).

In one or more implementations, it is possible for Bob to add a new electronic device (not shown) within his home. In doing so, the new electronic device may be associated with the home ID H, and Bob's user account ID B, and a low-value token may be issued to the new electronic device to provide Alison with access to the new electronic device. In one or more implementations, upon the electronic device <NUM> connecting to the local area network of the home, after the new electronic device has been added to the home, the electronic device <NUM> may prompt Alison if she would like to add the new electronic device to the list of devices that Alison may access within the home.

<FIG> illustrates another example process <NUM> for authorizing a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, the process <NUM> is primarily described herein with reference to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>. However, the process <NUM> is not limited to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>, and one or more blocks (or operations) of the process <NUM> may be performed by one or more other components and/or other suitable devices (e.g., any of the electronic devices <NUM>-<NUM>). Further for explanatory purposes, the blocks of the process <NUM> are described herein as occurring in serial, or linearly. However, multiple blocks of the process <NUM> may occur in parallel. In addition, the blocks of the process <NUM> need not be performed in the order shown and/or one or more blocks of the process <NUM> need not be performed and/or can be replaced by other operations.

As noted above, with respect to user account IDs, a user may select to use the same user ID for the media content server <NUM> (e.g., associated with Alison's media library, such as for music and/or video) and the cloud storage server <NUM> (e.g., associated with Alison's files, such as documents and/or photos). Alternatively, the user may select to have, and/or may otherwise have, different user account IDs (e.g., a split user account) for the media content server <NUM> and the cloud storage server <NUM>.

In the above-described example of <FIG>, the user account ID A for Alison applied to both of the media content server <NUM> and the cloud storage server <NUM>. However, in <FIG>, Alison has a split user account. Thus, in the example of <FIG>, the user account ID A applies for the cloud storage server <NUM>, and a new user account ID A' applies to the media content server <NUM>. Relative to the process <NUM> of <FIG>, the process <NUM> of <FIG> further adds a mapping operation <NUM> which maps the user account ID A to the user account ID A'. Moreover, operations <NUM> and <NUM> in <FIG> differ relative to operations <NUM> and <NUM> of <FIG>.

At operation <NUM>, the electronic device <NUM> sends an invitation (e.g., based on Bob's user input via a user interface) to Alison's electronic device <NUM>. The invitation may include multiple identifiers, including the home ID H, and IDs B, A and α (e.g., where α is optional as noted above).

Alison may provide user input at a user interface provided by the electronic device <NUM>, for example, which individually selects the device(s) (e.g., the electronic device <NUM> and/or the electronic device <NUM>) she would like to use for accessing content in Bob's home. After making such selection (if applicable), Alison may accept the invite via the user interface (<NUM>).

In response to Alison accepting the invite, the electronic device <NUM> may create a shared record (e.g., corresponding to the cloud container of operation <NUM> below). To establish the shared record, the messaging system client <NUM> may send a message to the electronic device <NUM> (<NUM>). The electronic device <NUM> may receive this message, for example, via a respective messaging client system (not shown) on the electronic device <NUM>. The messaging client system of the electronic device <NUM> may inform a respective authentication client (not shown) on the electronic device <NUM>. The authentication client of the electronic device <NUM> may send a confirmation message (e.g., including Alison's ID A, home ID H and Bob's ID B) to the identity management server <NUM> (<NUM>). The confirmation message may confirm to the identity management server <NUM> that Bob had sent the invite to Alison.

The messaging system client <NUM> sends a request to the authentication client <NUM> for a home token (<NUM>), where the home token T provides Alison with the authorization to access content using the electronic device <NUM>. Similar to the process <NUM>, the request for the home token T may include Alison's user account ID A, the home ID H and nonce N. However, the request for the home token T may further include Alison's ID A', which corresponds to the user account for Alison with respect to the media content server <NUM>. In addition, the request for the home token T may include tokens AT and A'T. For example the tokens AT and A'T may provide for the identity management server <NUM> to determine that A and A' are authenticated for the electronic device <NUM>.

Thus, the authentication client <NUM> sends a request (e.g., including IDs A, A', H, N, AT and A'T) to the identity management server <NUM>, in order to authenticate (e.g., silently authenticate) the electronic device <NUM> (<NUM>). The identity management server <NUM> may verify the IDs A, H and the nonce N, similar to the process <NUM> of <FIG>. In addition, the identity management server <NUM> may map the user account ID A of Alison to the user account ID A' of Alison (<NUM>). For example, since Alison has a split user account, this mapping by the identity management server <NUM> may be used to link the user account ID A to the user account ID and A'.

After such verification and mapping, the identity management server <NUM> may generate a home token T based on the IDs A, A', H and N, and send the home token T back to the authentication client <NUM> of the electronic device <NUM> (<NUM>). The home token T may indicate, at least partly based on the nonce N, that Bob's user account has authorized Alison's user account (e.g., identified by ID A') to use the device(s) (e.g., the electronic device <NUM>, or other devices such as the electronic device <NUM>) in Bob's home (e.g., identified by H), such as for outputting content. The authentication client <NUM> may pass the home token T to the messaging system client (<NUM>).

The messaging system client <NUM> may then send a request to the cloud storage server <NUM>, where the request is to store a cloud container (e.g., corresponding to the shared record established at operation <NUM>) which includes the home token T, and the IDs A', α and H on the cloud storage server <NUM> (<NUM>).

The cloud storage server <NUM> may pass the record (e.g., including the home token T and the IDs A', α and H) to the electronic device <NUM> (<NUM>). The electronic device <NUM> may verify that Alison's ID α is still linked to the home ID H of Bob (<NUM>). If verified, the electronic device <NUM> sends the home token T and IDs A and H to the media content server <NUM> (<NUM>), which may be configured to provide (e.g., stream or provide as a download) media content associated with the user account A' of Alison.

The media content server <NUM> sends a request to validate the home token T to the identity management server <NUM> (<NUM>). The request to validate the home token T may include identifiers A' and H. The identity management server <NUM> verifies that the home token T was issued to Alison's user account ID A' for the home ID H (e.g., based on the mapping from operation <NUM>), and further verifies that the electronic device <NUM> still belongs to Bob (<NUM>). The identity management server <NUM> returns a verification result to the media content server <NUM> (<NUM>).

In a case where the verification result indicates that the home token T is not valid, the media content server <NUM> sends an indication of the token failure to the electronic device <NUM> (<NUM>). The electronic device <NUM> then sends a message to the messaging system client <NUM>, for example, indicating a token failure (<NUM>). Upon receipt of this message, the messaging system client <NUM> may be configured to resume back to operation <NUM> (e.g., for the reauthorization of ID A').

In a case where the verification result indicates that the home token T is valid, the media content server <NUM> generates and sends a token (e.g., a low-value token) to the electronic device <NUM> (<NUM>). The low-value token may be used for outputting content associated with Alison's user account (e.g., ID A') and/or Bob's user account (e.g., ID B) from the media content server <NUM> to the electronic device <NUM>. The low-value token may provide for automatic output of content in cases where the content is free and/or previously purchased. Alternatively or in addition, in cases where the content requires payment, the media content server <NUM> may prompt Alison for a password (e.g., associated with Alison's user account, Bob's user account and/or the home account (ID H)).

In one or more implementations, the user may select to have, and/or may otherwise have, different multiple user account IDs with respect to the media content server <NUM>. For example, the user may have multiple electronic devices (e.g., one or more devices in addition to the electronic device <NUM>), and each of the electronic devices may be associated with a respective user account ID for the media content server <NUM>. Thus, in one or more implementations, the subject system may provide that the user account ID associated with the device used to accept the invite (e.g., the electronic device <NUM> at operation <NUM>) initially be selected as the user account ID with respect to accessing content on the electronic device <NUM>. In a case where a user subsequently uses a different device (e.g., which is associated with/logged into another user account ID) to access content on the electronic device <NUM>, the different device may provide a user interface which prompts the user whether to update the user account ID for accessing content on the electronic device <NUM> with the other user account ID. If the choses to update via the user interface, the user account ID is updated accordingly. Otherwise, the user account ID is not updated. The user account ID may be updated in a similar manner with respect to other devices (e.g., with different user account IDs) that subsequently access content via the electronic device <NUM>.

<FIG> illustrates an example process for revoking authorization of a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, the process <NUM> is primarily described herein with reference to the electronic devices <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>. However, the process <NUM> is not limited to the electronic devices <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>, and one or more blocks (or operations) of the process <NUM> may be performed by one or more other components and/or other suitable devices (e.g., any of the electronic devices <NUM>-<NUM>). Further for explanatory purposes, the blocks of the process <NUM> are described herein as occurring in serial, or linearly. However, multiple blocks of the process <NUM> may occur in parallel. In addition, the blocks of the process <NUM> need not be performed in the order shown and/or one or more blocks of the process <NUM> need not be performed and/or can be replaced by other operations.

In some cases, Alison may decide to no longer use the device(s) (e.g., the electronic devices <NUM> and/or <NUM>) in Bob's home for output of media content associated with the user account of Alison and/or Bob. For example, may Alison have been a resident of Bob's home and used the electronic device <NUM> for output of media content while she resided at Bob's home. However, when moving to another home, Alison may no longer desire to have the content from her user account accessible via the device(s) in Bob's home. Thus, Alison may choose to revoke her home token T.

The electronic device <NUM> may have a home configuration client <NUM> which can be used to configure, communicate with, and control home device(s) (e.g., the electronic devices <NUM> and <NUM>). The home configuration client <NUM> may provide a user interface for Alison to revoke her access to those device(s). For example, the user interface may provide an option for Alison to indicate that she would like to leave Bob's home account H (e.g., and therefore requesting to revoke her access to the device(s)). Alison may select this option, and the home configuration client <NUM> may send a corresponding indication to the messaging system client <NUM> (<NUM>).

The messaging system client <NUM> may send a revocation request to the authentication client <NUM>, where the revocation request indicates to revoke the token T with respect to IDs A, A' (e.g., provided Alison has a split account) and H (<NUM>). The authentication client <NUM> may in turn send a request for revocation (e.g., a silent revocation in which Alison is not required to manually provide user credentials) to the identity management server <NUM> for the token T with respect to the IDs A, A' and H (<NUM>).

The identity management server <NUM> may invalidate the token T with respect to the IDs A, A', H and the nonce N (<NUM>). For example, the identity management server <NUM> may indicate the invalidation by flagging IDs A and/or A' invalid with respect to the home ID H and the nonce N, or by otherwise updating credentials for the home token T to no longer associate IDs A and/or A' with the home ID H and the nonce N.

The identity management server <NUM> sends an indication of the revocation to the media content server <NUM> (<NUM>). The indication may include the ID A' (e.g., and/or the ID A, if Alison does not have a split account), such that the media content server <NUM> would no longer automatically output content to the electronic device <NUM>, e.g. based on Alison's using the electronic device <NUM> as a remote control to access the electronic device <NUM>. The media content server <NUM> invalidates the low-value tokens provided to the electronic device <NUM> associated with Bob's home H, for example, by treating the invalidation as a password change (<NUM>). As such, Alison would be required to manually input credentials (e.g., a username and password) in order to access her content on the electronic device <NUM>.

In addition, the messaging system client <NUM> of the electronic device <NUM> sends a request to the cloud storage server <NUM>, to remove the record (e.g., which includes the IDs A, A' and H) stored on the cloud storage server <NUM> (<NUM>). The cloud storage server <NUM> may send a request to the electronic device <NUM>, for the electronic device <NUM> to remove the ID A' from memory on the electronic device <NUM> (<NUM>). The electronic device may remove the ID A' from memory (<NUM>).

<FIG> illustrates another example process for revoking authorization of a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, the process <NUM> is primarily described herein with reference to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>. However, the process <NUM> is not limited to the electronic devices <NUM>, <NUM> and <NUM>, and the servers <NUM>-<NUM> of <FIG>, and one or more blocks (or operations) of the process <NUM> may be performed by one or more other components and/or other suitable devices (e.g., any of the electronic devices <NUM>-<NUM>). Further for explanatory purposes, the blocks of the process <NUM> are described herein as occurring in serial, or linearly. However, multiple blocks of the process <NUM> may occur in parallel. In addition, the blocks of the process <NUM> need not be performed in the order shown and/or one or more blocks of the process <NUM> need not be performed and/or can be replaced by other operations.

In the example of <FIG>, Bob may decide to revoke Alison's authorization to access Bob's home devices (e.g., if Bob knows that Alison will no longer be residing in Bob's home). For example, once the authorization is revoked, Alison will no longer have automatic authorization to use access the electronic device <NUM> associated with Bob's home H, e.g., using her electronic device <NUM> to output content on the electronic device <NUM>.

The electronic device <NUM> (e.g., of Bob) may have a home configuration client <NUM>, a messaging system client <NUM> and/or an authentication client <NUM>. The home configuration client <NUM> may provide a user interface Bob to revoke Alison's token with respect to Bob's home device(s). For example, the user interface may provide an option for Bob remove Alison from Bob's home. Bob may select this option, and the home configuration client <NUM> may send a corresponding indication to the messaging system client <NUM> (<NUM>).

The messaging system client <NUM> may send a revocation request to the authentication client <NUM>, where the revocation request indicates to revoke the token T with respect to IDs A, A' (e.g., provided Alison has a split account) and H (<NUM>). The authentication client <NUM> may in turn send a request for revocation (e.g., a silent revocation) to the identity management server <NUM>, where the request indicates the token with respect to IDs A, A' and H (<NUM>).

The identity management server <NUM> may invalidate the token T with respect to the IDs A, A', H and N (<NUM>), for example, by flagging or updating credentials as discussed above with respect to <FIG>. The identity management server <NUM> sends an indication of the revocation to the media content server <NUM> (<NUM>). The media content server <NUM> invalidates the low-value token previously provided to the electronic device <NUM>, for example, by treating the invalidation as a password change (<NUM>).

The home configuration client <NUM> of the electronic device <NUM> (e.g., Bob) sends a notification to the home configuration client <NUM> of the electronic device <NUM> (e.g., Alison) that Alison has been removed from the home with respect to accessing Bob's electronic devices associated with the home (<NUM>). The home configuration client <NUM> notifies the messaging system client <NUM> of the electronic device <NUM> that Alison has been removed (<NUM>).

In response, the messaging system client <NUM> sends a request to the cloud storage server <NUM>, to remove the record (e.g., which includes the IDs A, A' and H) stored on the cloud storage server <NUM> (<NUM>). The cloud storage server <NUM> sends a request to the electronic device <NUM>, for the electronic device <NUM> to remove the ID A' from memory on the electronic device <NUM> (<NUM>). The electronic device removes the ID A' from memory (<NUM>).

<FIG> illustrates a flow diagram of an example process for authorizing a user account to access content on a device in accordance with one or more implementations. For explanatory purposes, the process <NUM> is primarily described herein with reference to the electronic devices <NUM>, <NUM>, <NUM> and <NUM>, the media content server <NUM> and the identity management server <NUM> of <FIG>. However, the process <NUM> is not limited to the electronic devices <NUM>, <NUM>, <NUM> and <NUM>, the media content server <NUM> and the identity management server <NUM> of <FIG>, and one or more blocks (or operations) of the process <NUM> may be performed by one or more other components and/or other suitable devices. Further for explanatory purposes, the blocks of the process <NUM> are described herein as occurring in serial, or linearly. However, multiple blocks of the process <NUM> may occur in parallel. In addition, the blocks of the process <NUM> need not be performed in the order shown and/or one or more blocks of the process <NUM> need not be performed and/or can be replaced by other operations.

The electronic device <NUM>, which is associated with a first user account, receives an invitation to access content associated with the first user account on the electronic device <NUM>, which is associated with a second user account (<NUM>).

The electronic device <NUM> sends, to the identity management server <NUM>, a request for authorization to access the content associated with the first user account on the electronic device <NUM> associated with the second user account, the request including information included with the invitation (<NUM>).

The invitation may include a first ID associated with the first user account and a second ID associated with the second user account, and the sending may include sending the first ID and the second ID as part of the request for authorization. The invitation may further include a third ID associated with a home account (corresponding to the second user), and the sending may further include sending the third ID as part of the request for authorization.

The electronic device <NUM> receives, from the identity management server <NUM>, the authorization to access the content associated with the first user account on the electronic device <NUM> associated with the second user account (<NUM>). The authorization to access the content may be limited to when the electronic device <NUM> is connected to a same local area network as the electronic device <NUM>. The authorization may include a token which includes the first ID and the second ID.

The electronic device <NUM> is associated with the home account (corresponding to the second user), and the authorization provides for further access to the content associated with the first user account on one or more third devices associated with the home account.

Based at least in part on the received authorization, the content associated with the first user account is accessed on the electronic device <NUM> associated with the second user account (<NUM>). The electronic device <NUM> may receive an indication of the authorization, and may provide the indication of the authorization to the media content server <NUM> which stores the content, the media content server <NUM> being configured to provide the content to the electronic device <NUM> based on the indication of the authorization. The first user account may be associated with a content library provided by the media content server <NUM>.

The identity management server <NUM> may receive a request to revoke the authorization to access the content, and send an indication of the revocation to the media content server <NUM>. The request to revoke may be received from a device associated with the first or second user account.

As described above, one aspect of the present technology is the gathering and use of data available from specific and legitimate sources for outputting media content. The present disclosure contemplates that in some instances, this gathered data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data can include demographic data, location-based data, online identifiers, telephone numbers, email addresses, home addresses, data or records relating to a user's health or level of fitness (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.

The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used for outputting media content. Accordingly, use of such personal information data may facilitate transactions (e.g., on-line transactions). Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure. For instance, health and fitness data may be used, in accordance with the user's preferences to provide insights into their general wellness, or may be used as positive feedback to individuals using technology to pursue wellness goals.

Despite the foregoing, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of outputting media content, the present technology can be configured to allow users to select to "opt in" or "opt out" of participation in the collection of personal information data during registration for services or anytime thereafter. In addition to providing "opt in" and "opt out" options, the present disclosure contemplates providing notifications relating to the access or use of personal information. For instance, a user may be notified upon downloading an app that their personal information data will be accessed and then reminded again just before personal information data is accessed by the app.

<FIG> illustrates an electronic system <NUM> with which one or more implementations of the subject technology may be implemented. The electronic system <NUM> can be, and/or can be a part of, one or more of the electronic devices <NUM>-<NUM>, and/or one or the servers <NUM>-<NUM> shown in <FIG>. The electronic system <NUM> may include various types of computer readable media and interfaces for various other types of computer readable media. The electronic system <NUM> includes a bus <NUM>, one or more processing unit(s) <NUM>, a system memory <NUM> (and/or buffer), a ROM <NUM>, a permanent storage device <NUM>, an input device interface <NUM>, an output device interface <NUM>, and one or more network interfaces <NUM>, or subsets and variations thereof.

Finally, as shown in <FIG>, the bus <NUM> also couples the electronic system <NUM> to one or more networks and/or to one or more network nodes, such as one or more of the servers <NUM>-<NUM> shown in <FIG>, through the one or more network interface(s) <NUM>. In this manner, the electronic system <NUM> can be a part of a network of computers (such as a LAN, a wide area network ("WAN"), or an Intranet, or a network of networks, such as the Internet. Any or all components of the electronic system <NUM> can be used in conjunction with the subject disclosure.

Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of protection defined by the appended claims.

It is understood that any specific order or hierarchy of blocks in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes may be rearranged, or that all illustrated blocks be performed. Any of the blocks may be performed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous.

The phrase "at least one of' does not require selection of at least one of each item listed; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items.

The word "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any embodiment described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the term "include", "have", or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term "comprise" as "comprise" is interpreted when employed as a transitional word in a claim.

§ <NUM>(f) unless the element is expressly recited using the phrase "means for" or, in the case of a method claim, the element is recited using the phrase "step for".

Claim 1:
A method, comprising:
receiving, by a first device associated with a first user account, an invitation to access content associated with the first user account on a second device associated with a home account corresponding to a second user account, wherein the second device is a content output device, wherein the first device is connected to a same local area network as the second device or the first device is connected via a peer-to-peer connection to the second device, wherein the invitation comprises a first user identifier, ID, associated with the first user account and a second user identifier, ID, associated with the second user account;
sending, by the first device and to a server, a request for authorization to access the content associated with the first user account on the second device associated with the second user account, the request including the first user ID and the second user ID;
receiving, by the first device and from the server, the authorization to access the content associated with the first user account on the second device associated with the second user account, wherein the authorization comprises a token which includes the first user ID and the second user ID and the authorization provides for further access to the content associated with the first user account on one or more third devices associated with the home account when the home account is associated with the one or more third devices; and
accessing, by the first device, based at least in part on the received authorization, the content associated with the first user account via the second device associated with the second user account.