2017-05-29 75 views
2

我已经构建了一个包含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端生成的令牌不匹配。

非常感谢!

+0

当我实现的Facebook登录在此之前,我向Facebook请求用户的姓名,电子邮件等,然后在数据库中创建一个用户帐户,并将其独有的Facebook App ID与该帐户相关联。然后,在将来重新进行身份验证时,您将再次获得其ID,并在数据库中找到相应的帐户并加载该用户。 – fubar

回答

4

确定阅读后,我认为这个流程可能会起作用。你的想法好吗?

1用户通过Facebook认证的在Android/iOS应用

2检索Facebook的访问令牌

3执行API调用公共端点Web服务器上,并通过FB访问令牌和FB ID

4a Web服务器使Facebook Graph Api调用带有访问令牌并验证令牌有效,使用Facebook应用程序进行身份验证,并匹配Facebook ID

4b如果用户在网上第一次不存在..创建用户

5如果以上的比赛,然后Web服务器从用户模型生成JWT令牌,并返回JWT令牌到App

6应用程序现在使用JWT令牌未来的API调用

+1

Thx分享! –