I'm implementing OpenId Connect into my Yii2 app using the yii2-authclient library. I can login and exchange the code for a token with no problems. I've followed most of the code examples on the web and set a successCallback function that gets called once a user successfully logs in. It looks like this:

public function successCallback(ClientInterface $client) 
{
    $attributes = $client->getUserAttributes();
}

This code gets called, but calling getUserAttributes() results in the following error:

Exception – yii\authclient\InvalidResponseException
Request failed with code: 400, message:
{"error":"invalid_request","error_description":"Token not provided"}

The logs on the id server show a blank client and user, with an error of invalid_token.

I took a close look at the request I make and I see an access_token element. Any ideas what the problem might be? I can provide more information if necessary.

1

There are 1 best solutions below

0
On

I figured it out. The problem was that the yii2-authclient library was sending the token as a GET parameter and the ID server was expecting it as a POST param. I upgraded the yii2-authclient library and that solved the problem since a recent change sends the parameter as POST instead of GET.