首页 文章

Facebook和JWT Auth带有Laravel后端和React Native应用程序

提问于
浏览
2

我已经 Build 了一个带有vuejs前端和laravel后端的网站 .

登录的唯一方法是使用Socialite通过Facebook登录

一切正常 .

现在我正在构建一些React Native应用程序(Ios / Android),它们也使用Facebook登录但需要与同一个web api进行交互 .

我想使用JWT来保护React Native的API - > Laravel API

我在Laravel端设置了JWT w / Dingo,我可以使用JWTAuth :: fromUser()生成令牌 . 我已经 Build 了一些使用令牌进行身份验证的API endpoints ..到目前为止一切都很好 .

现在这里变成了粘性的部分 . 据我所知,在Laravel方面,您可以为任何用户创建JWT令牌 . 现在JWT "identifier"只是"id" ..而且's my understanding that the token I generate from JWTAuth::fromUser() simply has no idea or care that this user doesn' t具有传统凭据,而是使用Facebook登录 .

然而,在React Native方面,当新用户首次通过Facebook登录进行身份验证时......它不知道Laravel应用程序中的“匹配用户”是什么,我必须继续进行的只是唯一的Facebook提供商ID .

所以问题如下:

如何仅使用Facebook Provider ID和JWT Secret在React Native端生成JWT令牌,更重要的是,如何在Laravel端修改我的JWT代码,以便它可以理解使用Facebook生成的令牌提供者ID和JWT令牌

换句话说,我认为我的Laravel JWT实现需要进行修改,以便纯粹基于Facebook Provider Id创建/解析令牌,否则它将无法与React Native端生成的令牌匹配 .

非常感谢!!

1 回答

  • 6

    在做了一些阅读之后我觉得这个流程可能有效 . 请问你的想法?

    1用户通过Facebook在Android / Ios应用程序上进行身份验证

    2检索facebook访问令牌

    3在Web服务器上执行api调用公共 endpoints 并传递FB访问令牌和FB ID

    4a Web服务器使Facebook Graph Api调用w / Access Token并验证令牌是否有效,是否使用Facebook App进行身份验证,并匹配Facebook ID

    4b如果用户首先不在Web上,请创建用户

    5如果符合上述条件,则Web服务器将从用户模型生成JWT令牌并将JWT令牌返回给app

    6 App现在使用JWT令牌进行未来的API调用

相关问题