以太坊登录插件

Works, thank you!

1 个赞

您好 @michaeld @RGJ,我不确定这里是否是提问的正确地方,但我在使用 https://github.com/communiteq/discourse-siwe-authhttps://github.com/spruceid/discourse-siwe-auth 存储库时遇到了类似的 ffi 问题。

I, [2025-08-26T12:22:42.475531 #1]  INFO -- : 
I, [2025-08-26T12:22:42.475839 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate ffi-1.17.1-x86_64-linux-gnu, already activated ffi-1.17.2-x86_64-linux-gnu (Gem::LoadError)
/var/www/discourse/lib/plugin_gem.rb:25:in `load'
/var/www/discourse/lib/plugin/instance.rb:861:in `gem'
/var/www/discourse/plugins/discourse-siwe-auth/plugin.rb:23:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:806:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:806:in `activate!'
/var/www/discourse/lib/discourse.rb:344:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:341:in `each'
/var/www/discourse/lib/discourse.rb:341:in `activate_plugins!'
/var/www/discourse/config/application.rb:196:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:196:in `<class:Application>'
/var/www/discourse/config/application.rb:62:in `<module:Discourse>'
/var/www/discourse/config/application.rb:61:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)

我的 Discourse 自托管应用程序的钩子部分:

hooks:
  before_code:
    - exec:
        cmd:
          - gem install rubyzip
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/communiteq/discourse-siwe-auth.git
          - git clone https://github.com/discourse/discourse-code-review.git

目前,我将尝试分叉您的存储库并更新版本,因为我有一个迁移此 Discourse 实例的截止日期。我只是想告知您此事。
另外,我想知道该插件是否由 Communiteq 积极维护。

提前致谢!

不看代码……

问题会不会是 ffi 现在是核心的一部分,所以你不需要添加它?

我对 Ruby 并不太了解,所以无法对该插件发表评论,但我可以确认,在分叉的存储库中将 ffi 升级到 1.17.2 可以完美运行。升级是指将 plugin.rb 更改为:

gem 'ffi', '1.17.2', require: false

这对我来说是有效的,但我真的很想使用官方维护的插件,而不是我自己的分叉。

我的建议是完全移除 gem。当它生效时,提交一个 PR 来移除那一行。

我们更像是被动维护。官方存储库在 spruceid,但由于我们运行了多个使用该插件的网站,实际上是我们先修复它。这次你抢先了,它仍然在我们 3.5 的插件更改列表中。

如果没有人向官方存储库提交 PR,我将在本周末或下周末之前处理这个问题。

1 个赞

我希望把打开 PR 的任务留给你,因为你可能有一些我不知道的关于插件的考虑或测试,因为我对此服务知之甚少,我正在迁移它。

感谢您在此主题上的帮助、信息和贡献。

我已经修复了该插件——确实只是需要移除显式的 ffi gem 包含。

我也向原始仓库提交了一个拉取请求。只要该拉取请求尚未被接受,您就可以使用 https://github.com/communiteq/discourse-siwe-auth 而不是原始仓库。

我也会暂时将 OP 中的链接更改为这个。

2 个赞

我想问下,为什么我没有看见settings按钮呀?

我看这个插件.discourse-compatibility 文件显示支持 < 3.2.0.beta2-dev 版本,现在最新的discourse版本使用起来这个插件会有什么问题吗?

1 个赞

由于该文件指示了向后兼容性,因此 .plugin-compatibility 文件中不存在最新版本是一件好事

3 个赞