验证 JWT Token

JWT Token 是用户登录后的唯一凭证,验证 Token 有三种方法:

发送 Token 给 Authing 服务器验证

此方式适用于未使用 OIDC 流程的应用进行验证,若你使用了 OIDC,请参考:使用 OIDC 应用的密钥验证 Token

Authing 使用 GraphQL 进行数据交换,以下以 JavaScript 为例,演示如何发送 Token 给 Authing 服务器:

import axios from 'axios'

axios({
  method: 'POST',
  operationName: 'checkLoginStatus',
  query: `query checkLoginStatus($token: String) {
    checkLoginStatus(token: $token) {
      status
      code
      message
      token {
        data {
          email
          id
          clientId
          unionid
        }
        iat
        exp
      }
    }
  }`,
  variables: {
    token: 'USER_JWT_TOKEN'
  },
}).then((res) => {
  const d = res.data;
  if (d.errors) {
    throw d.errors[0];
  }
  return d.data.checkLoginStatus;
});
.then((loginStatus) => {
  // handle login status
})
.catch((error) => {
  // handle error
});

字段解释:

  1. status:Token 状态,true 为正常,false 为非法;

  2. code:状态代码,200 正常,非 200 不正常;

  3. message:提示信息;

  4. token:

    1. data:用户信息,email 为用户邮箱,id 为用户的唯一标识,clientId 为用户池 id,unioind 为用户使用三方登录时用户在三方登录平台的 id;

    2. iat:Token 签发时间;

    3. exp:Token 过期时间;

若你使用了 Web SDK,使用上可以简单一些,如下所示:

若 Token 合法,则返回数据为:

当 status 为 false 时,有三种情况,分别返回:

若你使用的为非 JavaScript 语言,请参考以下链接查看如何发送 GraphQL 请求:

各语言使用 GraphQL 的方法

验证 JWT Token 合法性的 GraphQL

字段解释:

  1. status:Token 状态,true 为正常,false 为非法;

  2. code:状态代码,200 正常,非 200 不正常;

  3. message:提示信息;

  4. token:

    1. data:用户信息,email 为用户邮箱,id 为用户的唯一标识,clientId 为用户池 id,unioind 为用户使用三方登录时用户在三方登录平台的 id;

    2. iat:Token 签发时间;

    3. exp:Token 过期时间;

使用 OIDC 应用的密钥验证 Token

如果你使用了 OIDC 流程,请使用此方式验证 Token。

密钥在控制台中 OIDC 应用的详情中可以获取到,如下图所示:

以下验证合法性的代码以 Node 为例(需要安装 jsonwebtoken)。

为了避免在客户端暴露 Token,建议将 Token 验证放在服务端执行。

如果你对如何在后端处理 OIDC 有困惑,请参考 Github 上的示例代码:oidc-demo

在线验证

验证 OIDC access_token 或 id_token 的合法性

GET https://oauth.authing.cn/oauth/oidc/validate_access_token

验证 OIDC 相关 token 合法性的线上接口。

Path Parameters

Name
Type
Description

access_token

string

值为 access_token 或 id_token

验证 OAuth access_token 合法性

GET https://oauth.authing.cn/authenticate

验证 OAuth token 合法性的线上接口

Path Parameters

Name
Type
Description

access_token

string

OAuth 签发的 access_token

Last updated

Was this helpful?