Php HybridAuth(Anvard)-如何注销&;以其他用户身份登录?

Php HybridAuth(Anvard)-如何注销&;以其他用户身份登录?,php,oauth,laravel-4,hybridauth,Php,Oauth,Laravel 4,Hybridauth,我正在使用一个实现Hybridauth的Laravel包。我读到的所有问题都是关于自动登录的,而我需要的恰恰相反 情景: UserA是使用LinkedIn登录的 单击注销以点击/anvard/logout路径 用户被重定向到/login,并显示“已注销”闪存消息 单击“使用LinkedIn登录”按钮 UserA自动通过身份验证,无需重新授权 用户B如何使用LinkedIn登录(使用相同的浏览器)? UserA可以进入他们的链接设置并取消对应用程序的授权,但这显然是不切实际的:) 我已尝试使用

我正在使用一个实现Hybridauth的Laravel包。我读到的所有问题都是关于自动登录的,而我需要的恰恰相反

情景:

  • UserA是使用LinkedIn登录的
  • 单击注销以点击
    /anvard/logout
    路径
  • 用户被重定向到
    /login
    ,并显示“已注销”闪存消息
  • 单击“使用LinkedIn登录”按钮
  • UserA自动通过身份验证,无需重新授权
用户B如何使用LinkedIn登录(使用相同的浏览器)?

UserA可以进入他们的链接设置并取消对应用程序的授权,但这显然是不切实际的:)

我已尝试使用“anvard/logout”路径,并尝试将以下内容添加到我的/logout路径:

Route::get('/logout', function() {

    // this is drawn from anvard's logout function
    $hybridAuth = App::make('hybridauth');
    $hybridAuth->logoutAllProviders();

    // this not working either :(
    // if(Auth::check()) {
    //     Auth::user()->remember_token = NULL;
    // }

    Auth::logout();
    Session::flush();
    return Redirect::route('login')->with('success', 'You\'ve been Logged Out');
});
如你所见。。我只是想尝试一下:)

我在hybridauth发现了一个问题:


更新:

我只是缺少一个基本原则吗?是否仅仅是一次只能有一个用户通过给定浏览器中的任何给定提供商进行身份验证,并且为了允许另一个用户登录,UserA必须访问其提供商(LinkedIn)并注销

下面是一个有用的答案和一条有用的评论:

如果使用了无效的访问令牌,API将返回 错误,然后由应用程序通过身份验证运行用户 再次处理。如果用户已经登录并且 应用程序仍处于授权状态,身份验证流将不可见地使用 cookies/local storage/etc,或以其他方式显示OAuth对话框, 对吧?


提前谢谢

我认为这就像Facebook登录一样有效。如果我当前在我的计算机上通过facebook登录,然后通过你的应用程序登录,你的应用程序将在我的facebook帐户和你网站的帐户之间建立连接

如果我注销,只有我在你网站上的会话被破坏,我从你的网站注销。这对我在facebook上的登录状态没有影响。如果我现在访问facebook网站,我仍然会通过我的facebook帐户登录。因此,如果我再次访问您的网站并通过facebook登录,我将使用我的关联帐户登录

所以,如果有人想登录,我首先要去facebook并注销。另一个人必须登录FB,然后可以使用他的facebook凭据登录您的网站


这就是你的意思吗?

是的,我看不见森林,只看到树,谢谢!