如何在Laravel 5中使用社交网站检查Oauth提供商的令牌的有效性?

时间:2015-06-04 16:27:19

标签: php laravel laravel-5

根据本教程,我能够在项目中使用Socialite:http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/

一切正常,但我对此有安全担忧。

if (!$request) {
    return $this->getAuthorizationFirst($provider);
}

这会检查令牌。但这是检查令牌的正确方法吗?

1 个答案:

答案 0 :(得分:1)

当我查看教程时,我注意到$this->getAuthorizationFirst($provider)调用了在自定义getAuthorizationFirst类中声明的AuthenticateUser方法。

getAuthorizationFirst方法只是强制社交名流驱动程序将用户重定向到提供程序(Facebook,Github,Twitter等),以便针对提供程序对用户进行身份验证。然后,该过程将经过身份验证的用户返回给调用应用程序。

// Authenticate by connecting to the Provider API
private function getAuthorizationFirst($provider) { 
    return $this->socialite->driver($provider)->redirect();
}

// Provider returns authenticated user for post-authentication processing
private function getSocialUser($provider) {
    return $this->socialite->driver($provider)->user();
}

这与Socialite公开的进程有关,该进程将重定向并返回到指定的URL以进行后验证用户处理。

从安全角度来看,这依赖于调用提供程序API的应用程序并重新获得经过身份验证的用户。

社交网站只是公开了一种重定向和返回方法进行身份验证。如果没有实际重定向到提供程序API,您将无法执行OAuth身份验证。

根据Jeffrey Way在Laracasts.com上整理的教程,本教程看起来严重,可在此处找到:

https://laracasts.com/series/whats-new-in-laravel-5/episodes/9