layerhq/layer-identity-token-php

Layer PHP 身份令牌提供程序

此软件包的规范仓库似乎已消失,因此已将其冻结。

1.0.0 2015-08-26 01:00 UTC

This package is not auto-updated.

Last update: 2020-03-06 16:51:07 UTC


README

Build Status Packagist version

该文件夹中的代码提供了一个用于生成 Layer 身份令牌的 PHP 库。此 PHP 库支持 php 5.4 及以上版本。

可在 Packagist 上获取。

安装

使用 Composer 将 Layer 身份令牌提供程序添加到您的项目中

cd <your_project>
composer require layerhq/layer-identity-token-php
composer update

初始设置

在您使用代码之前,需要设置以下 3 个环境变量

  • LAYER_PROVIDER_ID - 在 Layer 控制台中找到的提供程序 ID
  • LAYER_PRIVATE_KEY_ID - 在 Layer 控制台中生成并存储的公钥
  • LAYER_PRIVATE_KEY - 与公钥关联的私钥内容

所有这些值都可在您的应用的 Layer 控制台“密钥”部分找到。您还可以在库中手动设置这些值(请参阅以下详细信息)。

使用

$layerIdentityTokenProvider = new \Layer\LayerIdentityTokenProvider();
$identityToken = $layerIdentityTokenProvider->generateIdentityToken(USER_ID, NONCE);

generateIdentityToken 方法需要 2 个参数

  • USER_ID: 您想要认证的用户 ID。
  • NONCE: 从 Layer 收到的 nonce。有关更多信息,请参阅 文档

默认情况下,LayerIdentityTokenProvider 将查找 LAYER_PROVIDER_IDLAYER_PRIVATE_KEY_IDLAYER_PRIVATE_KEY 环境变量以获取凭证。您可以通过取消注释以下行并替换它们的值来覆盖这些值

$layerIdentityTokenProvider->setProviderID("layer:///providers/...");
$layerIdentityTokenProvider->setKeyID("layer:///keys/...");
$layerIdentityTokenProvider->setPrivateKey("----BEGIN RSA PRIVATE KEY....");

运行示例

Composer 软件包在公共文件夹中包含一个示例。此示例可以轻松部署到 Heroku

然后向包含 authenticate.php 的服务器发送一个示例请求

curl                          \
-D -                          \
-X POST                       \
-d "nonce=NONCE" -d "user_id=USER_ID"   \
http://YOUR_SERVER/authenticate.php```

Upon success, the endpoint will return a JSON object that contains a single key, `identity_token`. If the required input parameters were not provided, the endpoint will respond with "Invalid response."

Example successful response:

```console
HTTP/1.1 200 OK
Date: Thu, 13 Aug 2015 06:18:56 GMT
Server: Apache/2.4.10 (Unix) PHP/5.5.24
X-Powered-By: PHP/5.5.24
Content-Length: 519
Content-Type: text/html

{"identity_token":"..SNIP.."}

验证

您应通过访问 Layer 控制台工具 部分,验证签名请求的输出。将上面输出中收到的 identity_token 键的值粘贴并单击 验证。您应看到“令牌有效”。

将示例部署到 Heroku

自动化安装

Deploy

手动安装

您可以轻松将 PHP 代码部署到 Heroku。

安装 Heroku 工具包 以开始,然后按照他们的“入门”说明操作,包括首次登录

% heroku login
Enter your Heroku credentials.
Email: youremail@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/you/.ssh/id_rsa.pub

在您的新目录中,确保您已创建了一个 git 仓库,并且您的作品已被提交

% git init
% git add .
% git commit -m "Initial commit"

然后创建一个 Heroku 应用程序

% heroku create
Creating young-waterfall-2641... done, stack is cedar
http://young-waterfall-2641.herokuapp.com/ | git@heroku.com:young-waterfall-2641.git
Git remote heroku added

在您部署应用程序之前,您需要为服务器配置一些环境变量。您可以从 Layer 控制台的“身份验证”部分获取这些值。

% heroku config:set LAYER_PROVIDER_ID=yourlayerproviderid
% heroku config:set LAYER_PRIVATE_KEY_ID=yourlayerkeyid

此代码将在文件layer-key.pem中寻找私钥。您在仪表板生成身份验证密钥时将获得私钥。您可以选择将私钥添加为环境变量。

% heroku config:set LAYER_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----"

此时,您已经准备好部署并开始聊天。使用Heroku,只需进行一次git push即可。

% git push heroku master

您将看到一些文本飞过,最终会看到一些成功的提示。现在,您应该准备好测试代码。如果服务器返回错误,您可以查看日志来尝试调试。

% heroku logs

如果您对代码进行了任何更改,只需像以前一样提交并推送它们即可。

% git commit -am "Updating server code"
% git push heroku master