访问令牌是一长串随机字符串,用于在应用程序中唯一标识一个 Pioneer 设备。应用程序使用访问令牌与 Pi 服务器通信,以获取有关 Pioneer 设备的信息。访问令牌旨在保护 Pioneer 设备的信息免受未经授权的访问。本页面假设您已阅读Pi SDK页面,并了解 Pi SDK 和身份验证功能的工作原理。
获取访问令牌
通过调用 Pi SDK 的 Authenticate 函数来获取访问令牌。获取访问令牌无需特定的权限范围,因为它会包含在所有对 Authenticate 函数的调用中。
Authenticate 函数调用将返回一个访问令牌,该令牌以 Promise 对象的形式返回,格式如下:
AuthResults{
accessToken: string,
user: {
uid: string }}安全提示:请勿保存或使用身份验证调用中获取的令牌,除非用于显示目的,否则请勿用于其他用途,因为恶意攻击者可能使用伪造或损坏的访问令牌。请将令牌传递accessToken到服务器端,并使用 Pi 应用平台 API 的端点进行验证。稍后将详细介绍如何调用该 API。uidaccessToken/me
访问令牌是一个动态字符串,会按预设的时间间隔更改。应用程序不应使用访问令牌创建记录或存储有关 Pioneer 的信息。相反,应用程序应验证访问令牌,该令牌会返回正确的uidPioneer 信息。要验证访问令牌,应用程序应将访问令牌从其前端传递到服务器端,然后调用 Pi API/me端点。
这uid是一个静态字符串,用于唯一标识应用程序的 Pioneer 设备。uid通过 Authenticate 函数返回的字符串未经验证,应视为无效。只有uid从/mePi 平台 API 端点接收到的字符串才应被视为有效。
验证访问令牌
应用后端获取到访问令牌后,应调用平台 API 的相应接口。此调用将返回包含访问令牌和用户 ID 的/meUserDTO 。如果访问令牌由于任何原因无效,则调用将返回 401 错误。uidusername
调用 Pi API 的第一步是创建所需的授权标头。Bearer 标头与访问令牌结合使用,用于验证调用。
Authorization: Bearer <Pioneer's access token obtained from App Frontend>
以下是一个使用 Axios 添加所需标头的示例:
const PioneerAccessToken = accessToken_Obtained_from_App_Frontend;
const header = { headers: { authorization: "Bearer " + PioneerAccessToken }};
axios.get("https://api.minepi.com/v2/me", header);如果访问令牌有效,该/me端点将返回 UserDTO;如果令牌是伪造的或无效的,则返回 401 错误代码。返回的 UserDTO 如下所示:
Object{
user: {
uid: string,
username: string }}返回的结果uid是静态的,并且由于它来自/me端点,因此对于 Pioneer 和您的应用程序来说都是正确的uid。请查看下一节,了解其潜在用途uid。
uid在您的应用程序中使用
创建唯一数据库记录
应用可以使用uid从 Pi Platform API 端点获取的已验证身份信息,在其数据库中为每个 Pioneer 创建一个唯一记录。该身份信息是静态的,不会更改;但是,请勿使用Pi Platform SDK Authenticate 函数返回的身份信息,因为它未经验证。使用该身份信息创建记录后,即可用于存储任何使用信息,例如购买记录、游戏进度等。/meuiduiduid,
无需 Pioneer 登录
每次 Pi 用户访问该应用时,都会调用 Pi Platform SDK 的身份验证函数。该函数会返回一个访问令牌,需要对其进行验证。验证成功后,即可uid使用该令牌在应用数据库中查找该用户的记录,从而使应用能够为该用户提供个性化体验。
例如,假设您有一个提供付费视频的应用。当 Pi 用户通过 Pi 浏览器访问该网站时,首先会看到一个加载界面。几秒钟后,应用接收并验证访问令牌后,即可加载主页。uid,应用会利用该令牌向 Pi 用户显示他们过去购买的所有视频。此外,应用主页的自定义标题中还会包含一个uid令牌username,以便 Pi 用户知道他们正在访问自己的帐户。应用还可以利用 Pi 用户的购买历史记录来推荐新视频。所有这些操作都无需 Pi 用户登录或记住任何密码,从而带来流畅的用户体验。
Pi 打赏
微信打赏