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 中使用社交名流和护照创建 REST API