开发人员可以使用OAuth 2身份验证流构建自己的应用程序来管理Lokalise中的用户数据。
使用OAuth 2身份验证,应用程序可以向Lokalise apiv2.代表用户。
认证流程
OAuth 2是一种授权协议,允许用户授权第三方应用程序访问他们在另一个站点上的信息。
这个过程可以分为三个阶段:
用户请求访问码。
用户使用访问代码发出请求并接收访问令牌。用户可以使用这个访问令牌从Lokalise接收数据。
访问令牌到期后,用户请求刷新令牌。
授权流程如下图所示:
![](https://downloads.intercomcdn.com/i/o/393074796/a4834ede3778172a1ee7adb4/API+permission+scope+%283%29.jpg)
注册新应用
要使用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参数:
|
注册后收到的App Client ID |
|
应用程序中授权后将发送用户的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参数:
|
指定要采取的行动(应该是 |
|
注册后收到的应用程序客户端ID |
|
注册后收到的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 \”
}”
一个成功的回应应包含以下数据:
|
访问令牌以用于请求身份验证 |
|
刷新令牌,用于在当前的访问令牌过期后获取新的访问令牌。 |
|
访问令牌到期之前的秒数(通常是1小时) |
|
所使用的授权令牌类型。将用于经过身份验证的请求。(通常,“持票人”)。 |
例子:
{
:“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请求。
|
指定要采取的操作。(应该是“refresh_token”)。 |
|
注册后收到的App Client ID |
|
注册后收到的App Client Secret |
|
通过“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 \”
}”
一个成功的回应应包含以下数据:
|
访问令牌以用于请求身份验证 |
|
令牌可以访问的范围(请参阅下面描述中所需API调用的所需范围) |
|
访问令牌到期前的秒数(通常为1小时) |
|
使用的授权令牌类型。将用于经过身份验证的请求。(通常是“持票人”)。 |
例子:
{
:“access_token someAccessToken”,
“范围”:“write_projects”,
“expires_in”:3600年,
“token_type”:“持票人”
}
OAuth请求错误
如果OAuth请求导致一个错误,响应将是一个HTTP状态码400,并且主体将包含一个JSON对象,包含以下字段:
|
错误的名字 |
|
错误描述 |
|
(可选)授权码请求时添加的状态字符串 |
例子:
{
“错误”:“invalid_request”,
“error_description”:“无效的身体”,
“州”:“SomerandomstateRing”
}