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

Btitle · September 30, 2017 · Last by lisafangfang replied at May 14, 2019 · 3259 hits

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

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

Reply to 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
Reply to awking

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

话说 homeland 程序确实强大哦!

Reply to Btitle

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

Reply to awking

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

Reply to awking

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

Reply to 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

Reply to awking

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

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

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

微信登陆已经实现

Reply to bernardlai

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

Reply to kylin

去年的版本

Reply to bernardlai

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.