2

I use Filsh/yii2-oauth2-server,

I can use client token using $_pos to access my API.

In controller:

if (!isset($_post['token'])){
//exeption
}
else{ 
token = $_post('token');
}
if ((Accesstokens::isAccessTokenValid($token))) {
// do some thing.
}
in my Accesstokens model :

public static function isAccessTokenValid($token)
    {
        if (empty($token)) {
            return false;
        }
        $query = (new \yii\db\Query())
            ->select(['access_token','expires'])
            ->from('oauth_access_tokens')
            ->where(['access_token' => $token])
//            ->limit(10)
            ->one();
        if (empty($query)) {
            return false;
        }
        $expire = $query['expires'];
        return $expire > date('Y-m-d h:i:s');
    } 

If I use password (user_credential) token, I can implementation bearer auth using :

public function behaviors()
    {
        return ArrayHelper::merge(parent::behaviors(), [
            'authenticator' => [
                'class' => CompositeAuth::className(),
                'authMethods' => [
                    ['class' => HttpBearerAuth::className()],
                    ['class' => QueryParamAuth::className(), 'tokenParam' => 'accessToken'],
                ]
            ],
            'exceptionFilter' => [
                'class' => ErrorToExceptionFilter::className()
            ],
        ]);
    }

But this method is using user table in authenticate user, not oauth_client table to authenticate client without user.

How to authenticate token base on client table only, without user table?

Request:
GET http://myapi.com/api/www/index.php/oauth2/token
grand_type = client_credentials
client_id = id1
client_secret = secret1

Response:
"access_token": "thisistheccesstoken",
"expires_in": 31104000,
"token_type": "Bearer",
"scope": "default"

Request:
GET http://myapi.com/api/www/index.php/oauth2/v1/get/frogs
HEADER Authorization: Bearer thisistheaccesstoken

Response:
all the frogs

How to use: HEADER Authorization: Bearer? Can anyone help?

Mirza Sisic
  • 2,401
  • 4
  • 24
  • 38
Jimmy
  • 21
  • 1

0 Answers0