2016-09-07 9 views
1

В прошлом, я получил токен в kystoneclient v2 с этой командой:Как получить маркер ID в keystoneclient v3

token = keystone.auth_ref['token']['id'] 

Но когда мы переходим к трапецеидальной клиента v3, я просто попробовать то же самое с выше команда. но я всегда получаю сообщение об ошибке. Не могли бы вы любезно сообщить мне, как я могу получить идентификатор маркера.

ответ

1

В клиентском клиенте v3 ответ аутентификации возвращает идентификатор маркера в его заголовке, а не в теге ответа, который называется «X-Subject-Token».

Вы можете увидеть изменения здесь:

https://developer.openstack.org/api-ref/identity/v3/index.html?expanded=list-endpoints-detail,create-credential-detail,validate-and-show-information-for-token-detail,password-authentication-with-unscoped-authorization-detail

я пытался получить токен Perl, как это:

my $res = $agent->post(
    $self->{auth_url} . "/auth/tokens", 
    content_type => 'application/json', 
    content  => to_json($authKeystone) 
); 
my $headerData = $res->{_headers}; 
my $tokenId = $headerData->{'x-subject-token'}; 

Это работает!

1

keystone.auth_ref [ 'auth_token']

Или использовать локон, как показано ниже:

локон -sd «{ "Auth": { "passwordCredentials": { "имя пользователя" : "admin", "password": "mysecret"}}} '-H "Content-type: application/json" http://192.168.131.129:5000/v2.0/tokens | python -m json.tool