我正在尝试在Kotlin为我的Raspberry Pi创建一个Google智能助理。 我使用本IETF草案中提出的所谓“设备流程”实现了OAuth流程,因为我的Raspberry稍后将公开一个Web界面,并且没有任何输入设备或图形界面。 谷歌确实支持这个流程(当然),我最终得到用户同意的有效访问令牌。 为了测试的目的,我也尝试了一个默认授权流程,只是将用户转发到本地主机,因为它通常已经完成,但并没有解决问题。 我使用这个工具测试了访问令牌,并确认了范围和令牌的有效性。 所以令牌本身应该工作。 范围是: https : //www.googleapis.com/auth/assistant-sdk-prototype(如此处所述)这实际上并不指向任何有效的Web资源,而是在每个文档中引用。 然后,我尝试使用gRPC提供的Java存根将音频数据流式传输到助理SDK端点。 如第三方参考实现作为指导如何认证rpc存根。 但是这个参考实现和我自己的都不起作用。 他们都报告 io.grpc.StatusRuntimeException: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. 存根以这种方式进行validation: embeddedAssistantStub.withCallCredentials( MoreCallCredentials.from(OAuth2Credentials .newBuilder() .setAccessToken( myAccessToken, myAccessTokenExpirationDate)) .build())) 并且认证的请求被执行如下: val observer = authenticatedEmbeddedAssistantStub.converse(myStreamObserverImplementation) observer.onNext(myConfigConverseRequest) while(more audio data frames […]
当我需要外部供应商时,可以使用JWT和OAuth2吗? 我应该这样做吗? 主要优点: JWT是简单的令牌,可以在任何平台上轻松使用 OAuth2让我轻松使用外部提供者 试图使用这两个已经驱使我到需要令牌的问题,以及通过身份登录。 我更喜欢JWT,所以我可以在任何平台上以相同的方式使用它,我可以看到如何在没有像ASP.NET标识这样的抽象的情况下工作。 但是,在我看来,OAuth2更好地使用ASP.NET。 我的Web应用程序的主要目的是为Angular和Kotlin移动应用程序提供API。
我试图得到一个有效的oaut签名,但我无法做到这一点。 我在网上搜索了一段时间,发现了一些有用的网站,但即使有90%的代码,它不工作。 我已经有了消费者密码,消费者密码,访问令牌和令牌密码。 我创建了我已经拥有的所有参数(NameValuePair)的列表,并在我对它们中的每一个进行百分比编码之后,通过键对它们进行排序。 然后我建立基本上是百分比编码的汇总的签名基本字符串。 随着消费者的秘密和令牌的秘密也编码和合并与他们之间的“&”我扔在HMAC-SHA1函数签名基础字符串和新创建的密钥混合字符串。 该函数的结果是一个byteArray,然后转换为一个字符串并用作oauth_signature。 但它没有工作。 我不能进一步调试,因为我刚开始一个HTTP请求后得到一个401 HTTP错误授权请求。 有什么建议么 ? private fun generateNonce(): String { val random = Random() return java.lang.Long.toString(Math.abs(random.nextLong())) + System.currentTimeMillis() } private fun generateSignature(signatueBaseStr: String, oAuthConsumerSecret: String, oAuthTokenSecret: String?): String { var byteHMAC: ByteArray? = null try { val mac = Mac.getInstance(“HmacSHA1”) val spec: SecretKeySpec spec = if (null == […]
道歉,我最近主要在iOS上工作,而且自从和Spring一起工作以来,我一直都是这么做的。 工具: 科特林 春季启动 春天的社交 问题: 我正在构建一个允许典型的“使用Facebook登录”类型功能的应用程序。 我想将iOS客户端获得的OAuth令牌发送到后端进行身份验证。 如果令牌有效,则后端将返回成功的认证,否则指示无效的凭证。 使用OAuth令牌登录后,将检索一些配置文件信息。 题: 大多数“入门指南”似乎都遵循使用用户名和密码凭证的OAuth身份验证。 使用Spring Social + Facebook,我该如何: 使用OAuth访问令牌进行身份验证并检索配置文件数据?