是否可以使用 Mozilla Persona 来签署数据(字符串、 token 等)?
我想使用 navigator.id.request() 传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。
最佳答案
Persona/BrowserID 不是通用签名方案。为此,您可能需要查看 JSON Web Signature (JWS),它有多种语言的库支持。
navigator.id.request
API不提供将任意数据传递到配置工作流程中的方法,因此标准 Persona JavaScript 无法完成此操作。您必须使用自定义 JavaScript 来提供带有自定义数据而不是公钥对象的配置回调。
如果您到目前为止,是否可以让身份提供者签署任意数据将取决于 IdP 软件如何处理公钥参数。
例如,Haskell persona
库不透明地对待公钥参数;它将验证任何任意 JSON“值”( see source )。
另一方面,如果 IdP 软件期望以 JavaScript 中介代码生成的格式解析有效 key 对象,那么您将无法对任意数据进行签名。
总而言之:如果您托管自定义 JavaScript 以将任意数据传递给 IdP 而不是公钥,并且如果 IdP 的软件将公钥视为不透明值,那么您可以对任意数据进行签名与 Angular 色的数据。
关于javascript - Mozilla Persona 签名数据字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27229398/