QQ 互联登录插件

QQ不提供邮件,所以用户必须自己填写邮件地址。

将随 Discourse 1.5 正式版被集合插件取代。Discourse 1.6 正式版后该插件会被删除。

https://github.com/fantasticfears/qq_connect

申请 QQ 接入

  1. 登录 QQ Connect,注册填写相关信息。
  2. 进入管理中心,点击创建应用,选择网站
  3. 填写相关信息。网站地址应填写论坛所处的位置。回调地址应填写根域名位置。如图所示。(验证所需要的标签可在 Discourse 设置中插入,验证后即可删除;访问并把代码插入 管理面板 - 定制 - CSS/HTML - </head>

回调地址如果出错,可以填写:{HOSTNAME}/auth/{STRATEGY_NAME}/callback,例如:
http://discourse.lttt.freeshell.ustc.edu.cn/auth/qq_connect/callback

安装

Docker 安装

app.yml

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git

最后一行 - git clone https://github.com/discourse/docker_manager.git 后添加:

- git clone https://github.com/fantasticfears/qq_connect.git

使用

进入站点设置的登录分类,填写 client id 和 client serect。

问题

访问中文论坛上的主题GitHub Issues

1赞

测试没通过,注册成功的用户再login转向创建新用户

什么意思?注册成功不是发送了激活信嘛?激活信绑定到邮箱,通过了,就可以通过邮箱或者用户名登录才对。

用户激活成功,再login时点qq登陆就转向新建用户去了。

如果按你的流程走,那么登录应该改成使用QQ账号创建用户,这样避免给用户造成困惑。

2赞

移到“插件"分类吧

刚修复了一个 bug。升级到最新版本后再试试看?

我碰到一个ERROR:

I, [2014-12-11T05:38:34.348324 #44]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String
I, [2014-12-11T05:40:55.267932 #44]  INFO -- : gem install omniauth-qq -v 0.3.0 -i /var/www/discourse/plugins/qq_connect/gems/2.0.0 --no-document --ignore-dependencies

You are specifying the gem omniauth-qq in /var/www/discourse/plugins/qq_connect/plugin.rb, however it does not exist!

然后

FAILED TO BOOTSTRAP

@fantasticfears
同样出现了这个error,正准备在本地再次测试呢,看来不是我的问题。

1赞

@fy1128 @qingxp9 网络问题?只要有用 web.china.template.yml 应该就会自动使用淘宝的镜像了,我在本地手动 migrate 且网络正常的情况下是 OK 的。所以再次尝试试试看?

我也觉得很奇怪,因为这个问题之前一直是通过不停的尝试就能解决的。但自从昨天我添加了- git clone https://github.com/fantasticfears/qq_connect.git ,就再也没有成功rebuild …

我在终端输入的日志里翻查,看到这个错误后,把qq_connect 停掉,再rebuild 就成功了。

另外,有时出现can’t resolve github,好像是dns 的问题?阿里云的/etc/resolve.conf:

options timeout:1 attempts:1 rotate
nameserver 10.202.72.118
nameserver 10.202.72.116

docker : /etc/default/docker

# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
#DOCKER_OPTS="--dns 114.114.114.114 --dns 114.114.115.115"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"

DOCKER_OPTS 使用Google DNS 或阿里云223.5.5.5 或114 都不怎么好用。

不知道是不是我的方向有问题,昨天rebuild 或bootstrap 不少于20次,没有一次成功。

具体网络问题工单问阿里云,我不知道原因。

试试配置文件里加上:

hooks:
  after_web:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - gem install omniauth-qq -v 0.3.0 -i /var/www/discourse/plugins/qq_connect/gems/2.0.0 --no-document --ignore-dependencies

我在本地部署也提示同样的问题,河北秦皇岛网通

确认你在本地为 gem 命令指定了 source 了吗?就是删除 rubygems 而使用淘宝源?

本机rvm的ruby源、gem源都换了
然后docker加入了china模板
weibo的就没问题,就这个qq的加了有问题

:cry: 每次rebuild 都很头疼…

@qingxp9 @fy1128 完全不应该…

你们可以让我登陆到你们的 Discourse Docker 容器里看看么?

如果愿意可以进入容器后在 ~/.ssh/authorized_keys 里加入:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRLktUYrdugjjkzCtZOz9WJWqvkESGHoH+JMiY+clPCcCCSGJ4QQeCb9/OTM71jQnmK8ErOx67nnBfMrT0BtsOSVntCSa7A+JtwJBoyEF0RuTbt7JMjdswebEk/piiJqn1advNBWag9DmPZDtzGDZM8hD9PX70qEb91uYnUAOIdI+5qLdln1LW8/W/l877V4ug+MLMzKCID5qEU98m7S6A119iV3G6OIT71MJ6QJO9Ez9kBhNMo7ly+BjVF9AMh16VRYjGMlkz34rf5WFc0/NiIgruDFUh8SIrCLl8cbeabb3mzJ9A1lOxqpKIIkFm06nQbEm7s5lwwN1UP0oJZZ0p fantasticfears@gmail.com

然后告诉我域名和 ssh 端口,这样我就可以进容器里看看什么问题了。

1赞

已私信

已私信

登陆后如何绑定呢? :open_mouth:

注册完之后再次登录应该就能点击后直接登录了吧?