Homeland 关于 homeland 实现 qq、微信登录

Btitle · 2017年09月30日 · 最后由 lisafangfang 回复于 2019年05月14日 · 3259 次阅读

请教大神们,有没有人使用 homeland 实现 qq、微信登录注册的呢?感觉 homeland 只有 github 登录少了一些呀!另外,我今天刚安装好 homeland 了,发现我注册的账户居然无法进入后台,晕死!😥

你注册的用户是无法直接进去到后台。你需要在配置文件中指定管理员的邮件地址。

awking 回复

这个我知道,我已经指定了管理员邮箱了嘛。 不知道是不是这里! 另外我用 github 账户登陆,邮箱地址自动变成为这个

而我 github 的账户实际是 [email protected],而且我修改后保存也无效!不知道是不是 bug?😓

😅 哈哈,我重新 make restart 一下主机,现在可以登陆后台了,但是 github 登陆的账户邮箱仍然不是我那个邮箱!

修改 管理员邮箱的地址是在 homeland/config/config.yml 的

auto_locale: false
admin_emails: >
  [email protected]
google_analytics_key: ""

对是这个,地址,然后你重启后就可以进入到后台中了。

关于你的 github 邮箱错误的问题,check 一下你的 github token 是否正确。因为在未获取到 github 邮箱的情况下,会给一个默认的邮箱。

"#{provider}+#{uid}@example.com"

app/controllers/auth/omniauth_callbacks_controller.rb

def new_from_provider_data(provider, uid, data)
        User.new do |user|
          user.email =
            if data["email"].present? && !User.where(email: data["email"]).exists?
              data["email"]
            else
              "#{provider}+#{uid}@example.com"
            end

          user.name = data["name"]
          user.login = Homeland::Username.sanitize(data["nickname"])
          if provider == "github"
            user.github = data["nickname"]
          end

          if user.login.blank?
            user.login = "u#{Time.now.to_i}"
          end

          if User.where(login: user.login).exists?
            user.login = "#{user.github}-github" # TODO: possibly duplicated user login here. What should we do?
          end

          user.password = Devise.friendly_token[0, 20]
          user.location = data["location"]
          user.tagline  = data["description"]
        end
      end
awking 回复

我是修改 app.local.env 文件的,修改 config.yml 有什么区别吗?我根据 gethomeland 官网的教程说是用 docker 方式安装的只需要修改 config.yml 即可!说是修改 config.yml 文件是普通方式安装的!我尝试过普通方式安装,那个 ruby 环境太难搞了,不知道有没有详细安装教程呢?

话说 homeland 程序确实强大哦!

Btitle 回复

按照官方的 homeland 教程来是可行的。 我看的源代码,两边是一样的功能,刚才解释一下可能原因。

awking 回复

😀 哈哈,非常感谢啊!发觉 ruby china 社区热心人士很多啊!

awking 回复

😍 大神,再请教个问题,docker 方式安装 homeland 貌似无法修改源代码,那么在后台有没有地方可以修改 html+css 的呢?

Btitle 回复

这个你是没办法直接修改 html css 直接生效的。你用 docker 直接安装的时候, 然后会请求这个地址 https://github.com/ruby-china/homeland-docker/blob/master/docker-compose.yml 然后其中有一句是

container_name: 'homeland_web'
image: homeland/homeland:3.0.9

直接读取的是封装好的代码,你要修改的话,要重新自己打包封装 image. 没十分确定 @huacnlee

awking 回复

@huacnlee 关于后台可以修改、引用 html+css+js 这点我觉得 discourse 做得挺好的,建议可以参考参考

这个是本地安装的教程,可以去看看。 https://github.com/rails-engine/homeland

难点: (1)ruby 需要是 2.4 以上的 (2)依赖要安装好。 (3)使用 gem 来安装,一步一步解决,应该没问题的。。

微信登陆已经实现

bernardlai 回复

咨询下,请问哪个版本的 homeland 有微信和 qq 扫码和账号登陆的功能?

kylin 回复

去年的版本

bernardlai 回复

@bernardlai 请问你说的去年的版本具体是那个版本,是 homeland 说的这个 https://gethomeland.com/docs/sso/as-client/吗?还是有单独的代码分支。

之前集成过一个第三方 SDK,叫 ShareSDK,他们那边做的登陆平台是蛮多的,共 40 多个,常见的主流平台,一些国外的都支持的,如果有兴趣的话可以去看看,还不错!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号