curl --request GET \
--url https://{issuer}/session/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://{issuer}/session/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{issuer}/session/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/session/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/session/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{issuer}/session/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/session/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sub": "1c9d8b88-1bff-43d1-ad7a-88b2bc0024e9",
"sid": "c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1",
"application_id": "7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d",
"vendor_data": "user-42",
"amr": [
"password"
],
"mfa_verified": false,
"email": "person@example.com",
"email_verified": true,
"phone": null,
"verified_identity": null,
"verified": null,
"expires_at": "2026-11-16T10:41:14.347557Z",
"post_logout_redirect_uri": "",
"organizations": []
}获取会话 | Didit 认证 API
GET /session/ 用于对照实时会话校验访问令牌:令牌被撤销、空闲超时、被封禁或刷新后,校验会立即失败。Didit 认证 API。
curl --request GET \
--url https://{issuer}/session/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://{issuer}/session/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{issuer}/session/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/session/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/session/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{issuer}/session/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/session/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sub": "1c9d8b88-1bff-43d1-ad7a-88b2bc0024e9",
"sid": "c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1",
"application_id": "7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d",
"vendor_data": "user-42",
"amr": [
"password"
],
"mfa_verified": false,
"email": "person@example.com",
"email_verified": true,
"phone": null,
"verified_identity": null,
"verified": null,
"expires_at": "2026-11-16T10:41:14.347557Z",
"post_logout_redirect_uri": "",
"organizations": []
}https://<name>.auth.didit.me,且绝不接受您的 Didit API 密钥。授权
来自 POST /token/ 的该人员访问 token:请求头带有 typ: at+jwt 的 ES256 JWT,有效期最多 5 分钟。并非您的 Didit API 密钥。
响应
会话处于活动状态。
访问 token 背后的活跃会话。
身份 ID。
"1c9d8b88-1bff-43d1-ad7a-88b2bc0024e9"
会话 ID。
"c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1"
"7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d"
该人员在 Didit 各产品中的标识,与 token 中的一致。
"user-42"
会话的登录方式,为一个单值:例如 password、code(邮箱验证码)、magic(魔法链接)、passkey、phone、sso、wallet(Didit ID Wallet)或社交登录方式的名称。对于代理 token 则为空。
["password"]
会话是否通过了第二重验证。对于 passkey 登录始终为 true。
false
"person@example.com"
true
E.164 格式的电话号码,或 null。
null
登录时 Didit ID Wallet 共享的内容。当用户通过其他方式登录时为 null。
Show child attributes
Show child attributes
验证等级和所选声明,与 token 中作为 verified 携带的对象相同,若无则为 null。请读取此字段,而不是 email_verified,以了解该人员是否已验证其身份。
Show child attributes
Show child attributes
会话最晚结束时间。空闲超时可能会使其提前结束。
"2026-11-16T10:41:14.347557Z"
在用户退出登录后,您的应用将其重定向到的位置。未设置时为空字符串。
"https://app.example.com/"
该人员所属的每个客户组织(当组织功能启用时)。否则为空。
Show child attributes
Show child attributes