我目前正在使用here
中的OAuth 2 Server Laravel我正在使用client_credentials
和refresh_token
作为grant_types
。
'grant_types' => array(
'client_credentials' => array(
'class' => 'League\OAuth2\Server\Grant\ClientCredentials',
'access_token_ttl' => 60,
),
'refresh_token' => array(
'class' => 'League\OAuth2\Server\Grant\RefreshToken',
'access_token_ttl' => 3600,
'refresh_token_ttl' => 604800,
'rotate_refresh_tokens' => false,
),
),
当我从AuthorizationServer请求令牌时,我只收到此回复:
{
"access_token": "0JpNT0vORf4HC2fTfvkssjS3SEPhfai2YRTgELIC",
"token_type": "bearer",
"expires": 1395127143,
"expires_in": 60
}
您可以看到没有refresh_token
回复,只有access_token
。怎么解决这个?如何获得refresh_token
?
答案 0 :(得分:2)
根据我的理解,客户端凭证授予无法返回刷新令牌,请参阅规范的section 4.4.3,其中涉及此特定授权的响应。
如果您需要刷新令牌,则需要使用其他授权类型。
答案 1 :(得分:0)
将rotate_refresh_tokens
设为true
。
答案 2 :(得分:0)
注意:刷新令牌授权将与以下授权中的另一个一起使用:AuthCodeGrant
,@DatabaseTable(tableName = Header.TABLE_NAME)
public class Header extends Table {
@DatabaseField(
generatedId = true,
columnName = HEADER_ID,
dataType = DataType.LONG_OBJ
)
private Long id;
@ForeignCollectionField(orderColumnName = Binary.BINARY_ORDER, orderAscending = true)
private Collection<Binary> binaries=new ArrayList<Binary>();
}
。