@amazon-devices/kepler-media-account-login
Kepler媒体账户登录API为应用向系统报告其身份验证状态提供了一种方法。
备注
应用需要在每次启动时刷新用户的登录状态,这通过账户登录API实现。有两种账户登录状态:登录和注销。通过保持最新的登录状态,应用可确保用户有权访问相应的内容和功能。借助此接口,无论是在应用启动时,还是在应用登录状态发生变化时,应用都可以传递表示用户是否已登录的布尔值。系统还可以根据需要查询此状态,从而实现个性化用户体验。
产品可以利用这些信息来展示或筛选已验证用户身份的服务中的内容,从而让用户即时访问内容。
账户登录功能提供两个用于管理身份验证状态的关键组件:updateStatus方法和handleReadStatus回调函数。updateStatus方法报告应用的当前登录状态,以便在身份验证状态发生变化时进行实时更新。handleReadStatus回调函数可以响应有关应用当前登录状态的系统查询。两种方法都使用StatusType来表示账户状态,可能有两个值: SIGNED_IN和SIGNED_OUT。
开始使用
设置
-
将以下库依赖项添加到package.json文件的
dependencies部分。"@amazon-devices/kepler-media-account-login": "~1.1.0", "@amazon-devices/headless-task-manager": "~1.1.0" -
在您的manifest.toml中,添加访问所需的以下权限。
注意: 修改清单条目时,请将
com.amazondeveloper.media.sample替换为应用的程序包ID,如下例所示。schema-version = 1 [package] title = "<应用标题>" id = "com.amazondeveloper.media.sample" [components] [[components.interactive]] id = "com.amazondeveloper.media.sample.main" runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0" launch-type = "singleton" # 类别“com.amazon.category.kepler.media”仅对主要组件是必需的,该组件在 # 清单的 [[extras]] 部分中使用“component-id”值进行标识。 categories = ["com.amazon.category.main", "com.amazon.category.kepler.media"] [[components.service]] id = "com.amazondeveloper.media.sample.interface.provider" runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0" launch-type = "singleton" [processes] [[processes.group]] component-ids = ["com.amazondeveloper.media.sample.main"] [[processes.group]] component-ids = ["com.amazondeveloper.media.sample.interface.provider"] [offers] [[offers.interaction]] id = "com.amazondeveloper.media.sample.main" [[offers.service]] id = "com.amazondeveloper.media.sample.interface.provider" required-privileges = ["com.amazon.multimedia.privilege.session.manage"] [[message]] uri = "pkg://com.amazondeveloper.media.sample.main" # 匹配 [[offers.interaction]] 中使用的权限。如果未添加权限,则使用“*”。 sender-privileges = ["*"] receiver-privileges = ["self"] [[offers.module]] id = "/com.amazondeveloper.media.sample.module@ISomeUri1" includes-messages = ["pkg://com.amazondeveloper.media.sample.main"] [[extras]] key = "interface.provider" component-id = "com.amazondeveloper.media.sample.main" [extras.value.application] [[extras.value.application.interface]] interface_name = "com.amazon.kepler.media.IContentLauncherServer" attribute_options = ["partner-id"] static-values = { "partner-id" = "<您的合作伙伴ID>" } [[extras.value.application.interface]] interface_name = "com.amazon.kepler.media.IAccountLoginServer" attribute_options = ["Status"] # 在这个清单示例中,我们定义了内容启动器和账户登录接口。 # 由于账户登录集群应该由服务组件而不是 # 交互式组件来处理,因此我们使用“override_attribute_component”将对 # “Status”属性的调用重定向到服务组件。 override_attribute_component = { Status = "com.amazondeveloper.media.sample.interface.provider" } [needs] [[needs.module]] # 这种格式故意在“media”后面添加了一个句点 (.)。未来版本将会更改 # 这一表示法。 id = "/com.amazon.kepler.media.@IAccountLogin1" [[needs.module]] id = "/com.amazon.kepler.media@IContentLauncher1"
媒体应用通常需要与三个关键API集成:
- 用于查找和启动内容的内容启动器集群API
- Kepler媒体控制API,用于控制启动的媒体
- 账户登录API用于向系统传达账户登录状态
内容启动器和Kepler媒体控制API通常作为交互式组件实现,用于处理Kepler媒体查询。此组件在应用清单的附加部分使用interface.provider键指定,如以下TOML代码段和前面的示例所示。
[[extras]]
key = "interface.provider"
component-id ="<主要交互式组件ID>"
账户登录API是作为服务应用实现的,让系统可以在不唤醒整个应用的情况下查询账户登录状态。账户登录API使用单个“状态”属性,该属性由服务组件处理。为确保登录状态属性交互的正确路由,应用清单必须使用override_attribute_component设置指定服务组件,如本TOML示例以及之前的示例所示。
override_attribute_component = { Status = "<service component-id implementing Account Login api>" }
使用该方法优化了系统性能,并明确区分媒体控制和账户管理功能。
相关主题
模块
- index
- turbo-modules/AccountLogin
- turbo-modules/AccountLogin
- turbo-modules/AccountLoginServerComponent
- turbo-modules/AccountLoginServerComponent
- turbo-modules/KeplerScriptAccountLogin
- turbo-modules/KeplerScriptAccountLogin
Last updated: 2025年10月2日

