小编Ham*_*gni的帖子

使用 laravel-socialite 后端登录用户通过社交帐户进行 flutter

我正在开发一个 flutter 应用程序,我想实现社交登录(Google 和 Facebook)。

\n

我的 API 是用 Laravel 实现的,并使用 Laravel-socialite 来验证用户身份,有后端、Web 前端(使用 VueJs),现在我正在使用 flutter 开发移动应用程序。

\n

Web 应用程序运行良好(使用vue-social-auth包)。

\n

到目前为止我所做的:

\n
    \n
  1. 使用 flutter_google_sign_in 处理 flutter 应用程序上的身份验证。
  2. \n
  3. 配置了该包,我可以通过该包成功获取用户信息。
  4. \n
\n

我面临的问题:

\n

我似乎没有开始工作是将刚刚登录的用户发送到后端,以提供应用程序内的用户体验。

\n

这是vue-social-auth包提供的内容以及我发送到后端的内容,该后端工作正常:

\n
{code: "4/0AY0e-g442SMxdtLb_MVdQ63u1ydp48bbCRQco5Azoyf3y1rvYybDabyZGOvwAs7ZFJDQHA", scope: "email+profile+openid+https://www.googleapis.com/au\xe2\x80\xa6le+https://www.googleapis.com/auth/userinfo.email", authuser: "0", prompt: "consent"}\n
Run Code Online (Sandbox Code Playgroud)\n

这就是flutter_google_sign_in给出的(除了用户个人资料数据之外):

\n
idToken: "",\naccessToken: "",\nserverAuthCode: "", \n
Run Code Online (Sandbox Code Playgroud)\n

serverAuthCode 始终为null

\n

我怎样才能使用相同的API逻辑,通过社交帐户登录flutter上的用户?

\n

谢谢。

\n

laravel laravel-socialite flutter

7
推荐指数
2
解决办法
4902
查看次数

如何检查用户是否通过护照进行身份验证(使用 laravel-passport 从令牌获取用户)

我使用 Passport 将用户登录到 Laravel API 端点,用户使用 laravel-socialite 包使用其社交帐户(google、facebook)进行身份验证。

用户登录和注销的工作流程完美运行(生成令牌......等等)。问题是我有一个控制器,它应该根据是否有用户登录返回数据。

我确实从 HTTP 请求中拦截了 Bearer 令牌,但我无法让用户使用该令牌(我会使用数据库外观来根据令牌选择用户,但我实际上正在寻找是否已经实现了更干净的方法护照)

我也不想使用 auth:api 中间件,因为即使没有用户登录,控制器也应该工作并返回数据。

这是api路由:

Route::get("/articles/{tag?}", "ArticleController@get_tagged");
Run Code Online (Sandbox Code Playgroud)

这是我希望控制器具有的逻辑

public function get_tagged($tag = "", Request $request)
{
    if ($request->header("Authorization"))
        // return data related to the user
    else
        // return general data
}
Run Code Online (Sandbox Code Playgroud)

laravel laravel-socialite laravel-passport

6
推荐指数
1
解决办法
1万
查看次数