Laravel JWT 和社交名流插件

Posted

技术标签:

【中文标题】Laravel JWT 和社交名流插件【英文标题】:Laravel JWT and socialite plugin 【发布时间】:2016-04-21 20:35:08 【问题描述】:

我正在使用 Laravel 的 JWT 插件进行用户登录/身份验证。这适用于我的用户表: 当他专门注册到我的网站、输入密码、电子邮件等时。

在 jwt 中,我正在检查电子邮件(唯一的)和密码。

我还想实现 Laravel 的社交名流插件,以使用 oauth2 启用使用 google/facebook 等登录。

谁能告诉我如何使用两者?

我设置了一个身份验证中间件,用于检查身份验证令牌(由 JWT 插件生成)。但我不确定如果我使用 g+ 等登录会如何工作

【问题讨论】:

【参考方案1】:

如果您使用 JWTAuth https://github.com/tymondesigns/jwt-auth ,它还支持社交名流登录。社交名流返回经过身份验证的用户后,您可以通过电子邮件查找数据库,如果不存在则创建。然后您可以使用

生成令牌
$token = JWTAuth::fromUser($user)

更多讨论可以在这个链接https://laracasts.com/discuss/channels/laravel/how-would-one-use-jwt-json-web-tokens-with-laravel-socialite找到

【讨论】:

很好的解决方案,我也这么想 但是如果我想向社交名流用户发出 API 请求怎么办。我的表中没有为社交名流用户设置密码,JWT 要求提供电子邮件/密码以生成令牌。 JWTAuth::fromUser($user) 是另一种生成令牌的方式。它不需要username/password @Thabung Passport 有类似的方法吗?一般来说,我们如何对 Passport 做同样的事情?

以上是关于Laravel JWT 和社交名流插件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 社交名流推特

如何在 laravel 中使用社交名流和护照创建 REST API

如何测试 Laravel 社交名流

Laravel 社交名流:InvalidStateException(有时)

社交名流 laravel 5.4 Facebook 提供商

在 laravel 中使用社交名流登录 Facebook