开发人员可以使用OAuth 2身份验证流构建自己的应用程序来管理Lokalise中的用户数据。

使用OAuth 2身份验证,应用程序可以向Lokalise apiv2.代表用户。

认证流程

OAuth 2是一种授权协议,允许用户授权第三方应用程序访问他们在另一个站点上的信息。

这个过程可以分为三个阶段:

  1. 用户请求访问码。

  2. 用户使用访问代码发出请求并接收访问令牌。用户可以使用这个访问令牌从Lokalise接收数据。

  3. 访问令牌到期后,用户请求刷新令牌。

授权流程如下图所示:

注册新应用

要使用Lokalise注册您的应用程序,您应该联系我们的支持团队并提供以下信息:

  • 您的申请的标题

  • 应用程序的标志

    • 支持大小为150 × 150px。

    • 支持的格式是PNG和SVG。

  • 应用程序的描述(该字段是可选的)。

  • 链接到应用程序网站/文档(该字段是可选的)。

  • 要求的范围。中的对应API端点所需范围列表Lokalise API描述

OAuth认证概述

Lokalise是使用OAuth 2.0授权协议实现的授权代码流。

先决条件

  • 应用程序应该在Lokalise注册。需要获取OAuth客户端ID(“客户端ID”)和OAuth客户端秘密(“客户端秘密”)。

  • 公开可用的URL,用户将在验证后被重定向(“重定向URI”)。

步骤1。获得授权代码

该应用程序应将用户重定向到AUTH URL。在成功的授权用户转发到重定向URL之后,将授权代码作为参数。

请求应发送到以下URL:

https://app.www.wwealerts.com/oauth2/auth

URL参数:

client_id

注册后收到的App Client ID

redirect_uri

应用程序中授权后将发送用户的URL。

范围

应用程序需要的作用域(见下面描述中需要的API调用所需的作用域)。多个作用域应该用空格分隔。

状态

用于防止CSRF攻击的随机字符串。(可选)

example请求:

https://app.www.wwealerts.com/oauth2/auth?client_id=someclientid& redirect_uri=https://example.com/auth/success&&scope=write_projects adraeve_keys&state=somerandomstatestring.

用户将被重定向到以下URL:

https://example.com/auth/success?oauth_code=oauthCodeReceived

步骤2。获取访问令牌

app可以使用接收到的授权码获取访问令牌。为了实现这一点,应用程序应该向访问令牌URL发送一个POST请求。

URL参数:

grant_type

指定要采取的行动(应该是authorization_code

client_id

注册后收到的应用程序客户端ID

client_secret

注册后收到的app客户端秘密

代码

成功用户身份验证和重定向后收到的代码

示例cURL请求:

curl -X POST \
https://app.www.wwealerts.com/oauth2/token \
-H "content-type: application/json" \
- d”{
\“grant_type \”,\“refresh_token \”,
\“client_id \”,\“SomeClientID \”,
\“client_secret \”,\“SomeClientSecret \”,
“refresh_token \”:\“somerefreshtoken \”
}”

一个成功的回应应包含以下数据:

access_token

访问令牌以用于请求身份验证

refresh_token

刷新令牌,用于在当前的访问令牌过期后获取新的访问令牌。

expires_in

访问令牌到期之前的秒数(通常是1小时)

token_type

所使用的授权令牌类型。将用于经过身份验证的请求。(通常,“持票人”)。

例子:


:“access_token someAccessToken”,
:“refresh_token someRefreshToken”,
“expires_in”:3600年,
“token_type”:“持票人”


向API发出请求

应用程序现在可以代表授权用户向Lokalise API发出请求。为了授权请求,授权请求标题必须包含令牌类型和实际访问令牌。

使用cURL请求示例:

curl -H "Authorization: bearing someAccessToken" https://api.www.wwealerts.com/api2/projects . conf . conf

步骤3。刷新令牌

出于安全原因,访问令牌的过期时间相对较短。为了防止令牌过期后用户对应用重新授权,应用可以使用刷新令牌获取新的访问令牌。

应用程序应该向访问令牌URL发送一个POST请求。

grant_type

指定要采取的操作。(应该是“refresh_token”)。

client_id

注册后收到的App Client ID

client_secret

注册后收到的App Client Secret

refresh_token

通过“authorization_code”请求获得的刷新令牌

卷曲示例:

curl -X POST \
https://app.www.wwealerts.com/oauth2/token \
-H "content-type: application/json" \
- d”{
\“grant_type \”,\“refresh_token \”,
\“client_id \”,\“SomeClientID \”,
\“client_secret \”,\“SomeClientSecret \”,
“refresh_token \”:\“somerefreshtoken \”
}”

一个成功的回应应包含以下数据:

access_token

访问令牌以用于请求身份验证

范围

令牌可以访问的范围(请参阅下面描述中所需API调用的所需范围)

expires_in

访问令牌到期前的秒数(通常为1小时)

token_type

使用的授权令牌类型。将用于经过身份验证的请求。(通常是“持票人”)。

例子:


:“access_token someAccessToken”,
“范围”:“write_projects”,
“expires_in”:3600年,
“token_type”:“持票人”

OAuth请求错误

如果OAuth请求导致一个错误,响应将是一个HTTP状态码400,并且主体将包含一个JSON对象,包含以下字段:

错误

错误的名字

error_description

错误描述

状态

(可选)授权码请求时添加的状态字符串

例子:


“错误”:“invalid_request”,
“error_description”:“无效的身体”,
“州”:“SomerandomstateRing”
这回答了你的问题了吗?