登录后进行讨论

huiyuye

huiyuye 发表于 2019-06-10 14:30:40
class TokenProxy {
    protected $http;


    public function __construct(\GuzzleHttp\Client $http) {
        $this->http = $http;
    }
    public function proxy($grantType, array $data = [] ) {
        // /oauth/token
        $data = array_merge($data, [
            'client_id' => env('PASSPORT_CLIENT_ID'),
            'client_secret' => env('PASSPORT_CLIENT_SECRET'),
            'grant_type' => $grantType
        ]);
        $response = $this->http->post('http://phpstudy/oauth/token', [
            'form_params' => $data
        ]);
        $token = json_decode((string) $response->getBody(), true);


        return $response()->json([
            'token' => $token['access_token'],
            'expires_in' => $token['expires_in']
        ])->cookie('refreshToken', $token['refresh_token'], 864000, null, null, false, true);
    }
}

下面是接口返回的报错

  1. exception"Symfony\Component\Debug\Exception\FatalThrowableError"
  2. file"/Users/michealye/Desktop/myProduct/php/vue-spa/app/Http/Proxy/TokenProxy.php"
  3. line22
  4. message"Function name must be a string"

我是照着视频上写的,不知道为什么会出现这个错误。根据视频确认了好几遍,也没有发现有什么问题,请问这个应该怎么修改?

点赞 0

nicoke

nicoke 发表于 2019-06-16 01:20:27
public function proxy($grantType, array $data = [])
{
    $data = array_merge($data, [
        'client_id' => env('PASSPORT_CLIENT_ID'),
        'client_secret' => env('PASSPORT_CLIENT_SEERET'),
        'grant_type' => $grantType,
    ]);

    $response = $this->http->post("http://laravel-el.test/oauth/token", [
        'form_params' => $data
    ]);

    $token = json_decode((string) $response->getBody(), true);

    return response()->json([
        'token' => $token['access_token'],
        'expires_in' => $token['expires_in'],
    ])->cookie('refreshToken', $token['refresh_token'], 864000, null, null, false, true);
}

上面这个接口请求的时候报错:

exception"GuzzleHttp\Exception\ConnectException"

file"/Users/chicv/www/laravel-el/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php"

line185

message"cURL error 6: Could not resolve: laravel-el.test (Domain name not found)

说明:http://laravel-el.test这个域名是我从我的项目地址栏直接复制下来的,是可以打开我的页面的,但是报这个错,请问是啥原因呀?

点赞 0

JellyBool

JellyBool 回复 nicoke 发表于 2019-06-16 01:44:06

确定么?这个 'laravel-el.test' 可以访问

点赞 0

nicoke

nicoke 回复 JellyBool 发表于 2019-06-16 10:38:57

是的,可以访问。laravel-el.test 是我用 valet link 出来的域名。

点赞 0

JellyBool

JellyBool 回复 nicoke 发表于 2019-06-16 12:07:47

这么奇怪的么?报错就是说他无法解析这个域名啊,有没有试过换域名的解决办法

点赞 0

nicoke

nicoke 回复 JellyBool 发表于 2019-06-16 15:06:20

试过了换其他域名,也是报这个错误

点赞 0

jingjingmissdan

jingjingmissdan 回复 nicoke 发表于 2019-06-26 15:34:56

如果是php 内置的服务器运行的,http server是block的,一次只能处理一个请求。

最好是用web服务器

点赞 0