我已经构建了一个包含vuejs前端和laravel后端的网站。Facebook和JWT Auth w/Laravel后端和React Native应用程序
只有登录的方式是通过Facebook登录使用社交名媛
所有这一切工作正常。
现在我正在构建一些也使用Facebook登录但需要与同一个Web API进行交互的React Native应用程序(Ios/Android)。
我想用智威汤逊,以确保API的阵营原住民 - > Laravel API
我成立了智威汤逊瓦特/巴丁格在Laravel侧和我能够生成使用JWTAuth :: FROMUSER令牌() 。我已经建立了一些使用令牌进行认证的API端点。迄今为止这么好。
现在,这是变粘的部分。我知道在事情的Laravel方面,你可以用任何用户创建JWT令牌。现在JWT的“标识符”就是“id”..而且我的理解是我从JWTAuth :: fromUser )根本不知道或关心这个用户没有传统的凭据,而是使用Facebook登录。
但是,在React Native方面,当一个新用户首先通过Facebook登录进行身份验证时,它不知道Laravel应用程序上的“匹配用户”是什么,我所要做的基本上是独特的Facebook提供商ID。
所以,问题如下:
我如何可以生成一个JWT令牌只使用Facebook的提供商ID和智威汤逊秘密,更重要的是作出反应机端,如何在修改我的智威汤逊代码Laravel方面,以便它可以理解使用Facebook提供商ID和JWT令牌生成的令牌
换句话说,我认为我的Laravel JWT实现需要进行修改,以便完全创建/解析令牌Facebook提供者标识,因为否则它将与React Native端生成的令牌不匹配。
非常感谢!
当我实现的Facebook登录在此之前,我向Facebook请求用户的姓名,电子邮件等,然后在数据库中创建一个用户帐户,并将其独有的Facebook App ID与该帐户相关联。然后,在将来重新进行身份验证时,您将再次获得其ID,并在数据库中找到相应的帐户并加载该用户。 – fubar