将 OAuth2 与 Compojure 结合使用的多合一解决方案

Posted

技术标签:

【中文标题】将 OAuth2 与 Compojure 结合使用的多合一解决方案【英文标题】:All-in-one solution for using OAuth2 with Compojure 【发布时间】:2012-01-21 09:47:46 【问题描述】:

我正在尝试使用多合一解决方案将复合应用程序与这些 OAuth2 提供程序集成:LinkedIn、Facebook、Google 和 Twitter。我知道一些现有的 java 库,例如 scribe-java 或 spring-social 可以提供帮助。但是当从clojure中使用时它们很糟糕。我的目标是否有更友好的 clojure 解决方案?或者任何人都可以向我指出如何实现我的目标的工作示例/教程?

【问题讨论】:

【参考方案1】:

对于 OAuth 2.0,有 https://github.com/DerGuteMoritz/clj-oauth2

免责声明:我还没有尝试过,但我正要尝试。我会回来报告我的经验,如果我在 GitHub 上找到示例应用程序。

好的 - 我可以报告 clj-oauth2 虽然缺乏文档,但确实有效。 I submitted a pull request for OAuth 2.0 Draft 10 support(需要与 Force.com 一起使用,也可能与 Google 一起使用)。我还会在不久的将来在我的 fork 上发布一个示例应用程序 https://github.com/metadaddy-sfdc/clj-oauth2

【讨论】:

怎么样?你觉得它易于使用吗?我在 ruby​​ 和 javascript 中使用 oauth2 库的经历非常糟糕。 嗯,它是 0.2.0 版本,所以我的期望并不高。文档 - 几乎不存在,所以我不得不阅读源代码以使其成功运行,并进行一些更改以使其支持 salesforce.com 的 OAuth 2.0 Draft 10 实施。我有一个示例应用程序,我将很快发布到我的 GitHub 存储库 github.com/metadaddy-sfdc clj-oauth2 是否适用于 Twitter?尽管令牌 URL 存在冲突,但我无法确定 Twitter 是否支持 OAuth 2。 Twitter 仅支持 Application-only authentication 的 OAuth 2.0; OAuth 1.0a 仍然需要代表用户发出请求。【参考方案2】:

https://github.com/mattrepl/clj-oauth

免责声明:这个我没试过,我只是在clojure-libraries找到的。

【讨论】:

这与clj-oauth2相比如何? clj-oauth 不支持 OAuth 2。

以上是关于将 OAuth2 与 Compojure 结合使用的多合一解决方案的主要内容,如果未能解决你的问题,请参考以下文章

如果中间件的顺序错误,Compojure会在Firefox中触发“找不到文件”错误

Compojure/Ring:为啥与 cookie-store 的会话在服务器重新启动后无法幸存?

在 Compojure 中组合路线

将 Google OIDC 与代码流和 PKCE 结合使用

结合源码剖析Oauth2分布式认证与授权的实现流程

结合源码剖析Oauth2分布式认证与授权的实现流程