微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何伪造社交名媛`userFromToken` 方法进行测试?

如何解决如何伪造社交名媛`userFromToken` 方法进行测试?

我已经完成了对类似问题的搜索,其中大部分是包含 npm install -g sass 和其他内容的有状态实现。就我而言,我不需要它们,因为提供商的身份验证是在客户端设备 (Android) 上本地完成的。

我所做的是将令牌从设备传递到服务器,并使用它来获取用户信息以创建新帐户和访问令牌,以便我的服务器知道谁尝试从哪个提供商访问 API。

我做了一个测试,但我不能让它工作

redirect

测试失败,public function test_user_can_login_with_socialite_provider() { $user = User::factory()->has(Provider::factory())->createOne(); $provider = $user->providers->first(); // => name: google,token: fake_token $params = ['provider' => $provider->name,'provider_token' => $provider->token]; $response = $this->postJson(route('auth.login.provider'),$params); $response->dump(); $response->assertOk(); $response->assertJsonFragment(['token']); Socialite::shouldReceive('driver')->once()->with($params['provider'])->andReturnSelf(); Socialite::shouldReceive('userFromToken')->once()->with($params['provider_token'])->andReturn($user); } ,这是转储。

500 error

我的实现是这样的

{#2667
  +"message": """
    Client error: `GET https://www.googleapis.com/oauth2/v3/userinfo?prettyPrint=false` resulted in a `401 Unauthorized` response:\n
    {\n
      "error": "invalid_request",\n
      "error_description": "Invalid Credentials"\n
    }\n
    ...

我想知道我是否可以执行 public function loginWithProvider(RequestLoginWithProvider $request) { $provider = Socialite::driver($request->provider)->userFromToken( $request->provider_token ); $user = User::firstOrCreate( ['email' => $provider->getEmail()],['email_verified_at' => Now(),'name' => $provider->getName()],); $user->providers()->updateOrCreate( ['name' => $request->name,'provider_id' => $provider->getId()],['avatar' => $provider->getAvatar()],); return $user->createtoken($request->provider)->plainTextToken; } 之类的操作,这样它就不会真正调用 Google Api。但由于文档没有提到任何关于测试社交名流的内容我有点迷失了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。