Gem 请教下怎么用 warden 做多个 sns 帐户关联

ghawkgu · 发布于 2013年06月29日 · 1446 次阅读
96

正在用padrino,尝试利用warden_omniauth做用户认证和注册。 单个sns帐号认证没有问题,但是想在此基础上实现devise那样的多帐户关联。 但是发现warden的session只要有被认证的用户,就会跳过调用新的stragegy的过程。

看了warden的代码。lib/warden/proxy.rb 第319行,直接用return把后续的处理跳过了。

def _perform_authentication(*args)
    scope, opts = _retrieve_scope_and_opts(args)
    user = nil

    # Look for an existing user in the session for this scope.
    # If there was no user in the session. See if we can get one from the request.
    return user, opts if user = user(opts.merge(:scope => scope))
    _run_strategies_for(scope, args)

    if winning_strategy && winning_strategy.user
      opts[:store] = opts.fetch(:store, winning_strategy.store?)
      set_user(winning_strategy.user, opts.merge!(:event => :authentication))
    end

    [@users[scope], opts]
  end

想知道大家用warden的时候是怎么实现相关处理的。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册