我正在从事一个需要oauth2令牌才能进行通信的项目。后端给了我一个curl命令,但我不知道如何在Unity中将其转换为WWW格式,因为我以前没有使用http或json文件的经验。你能帮我取一下代币吗?谢谢下面是curl代码的样子:
$curl-v-u{CLIENT_ID}:{CLIENT_SECRET}”https://api.domo.com/oauth/token?grant_type=client_credentials
下面是一个例子:
$curl-v-u 441e307a-b2a1-4a99-8561-174e5b153fsa:F103FC453D08BDH049EDC9A1913E3F5266447A06D1D2751258C89771BCC8087“https://api.domo.com/oauth/token?grant_type=client_credentials
非常感谢你!
我使用以下方法实现了它:参考特拉维斯的fitbit代码
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(_clientID + ":" + _consumerSecret);
var encoded = Convert.ToBase64String(plainTextBytes);
var form = new WWWForm();
form.AddField("client_id", _clientID);
form.AddField("grant_type", "authorization_code");
form.AddField("redirect_uri", WWW.UnEscapeURL(CallBackUrl));
form.AddField("code", _returnCode);
var headers = form.headers;
headers["Authorization"] = "Basic " + encoded;
_wwwRequest = new WWW("https://api.fitbit.com/oauth2/token", form.data, headers);
关联到你的后端,看看他们使用的是什么样的oaut2,你可以在这里看到oaut2留档。请随时留下评论。
要使用WWW
API获取oAuth2令牌,请使用WWWForm
创建包含grant_type
、client_id
和client_secret
的表单。当您发出请求时,令牌应该以Json格式返回。使用Unity的JsonUuel
将其转换为您可以轻松获取的字符串。
检索令牌:
[Serializable]
public class TokenClassName
{
public string access_token;
}
IEnumerator GetAccessToken()
{
var url = "http://yoururl.com";
var form = new WWWForm();
form.AddField("grant_type", "client_credentials");
form.AddField("client_id", "login-secret");
form.AddField("client_secret", "secretpassword");
WWW www = new WWW(url, form);
//wait for request to complete
yield return www;
//and check for errors
if (String.IsNullOrEmpty(www.error))
{
string resultContent = www.text;
UnityEngine.Debug.Log(resultContent);
TokenClassName json = JsonUtility.FromJson<TokenClassName>(resultContent);
UnityEngine.Debug.Log("Token: " + json.access_token);
}
else
{
//something wrong!
UnityEngine.Debug.Log("WWW Error: " + www.error);
}
}
使用令牌:
收到令牌后,它将存储在json中。访问令牌
变量。然后,您可以将其添加到其他WWW
请求的标题中,从而使用它发出请求。该标题存储在字典中,如下所示:
headers.Add("Authorization", "Bearer " + token);
下面是使用收到的令牌发出请求的完整示例:
IEnumerator makeRequestWithToken(string token)
{
var url = "http://yoururl.com";
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("Authorization", "Bearer " + token);
WWWForm formData = new WWWForm();
formData.AddField("YourField", "YourVal");
formData.AddField("YourField", "YourVal");
WWW www = new WWW(url, formData.data, headers);
yield return www;
//and check for errors
if (String.IsNullOrEmpty(www.error))
{
string resultContent = www.text;
UnityEngine.Debug.Log(resultContent);
}
else
{
//something wrong!
UnityEngine.Debug.Log("WWW Error: " + www.error);
}
}
Unity现在使用UnityWebRequest
。如果可能的话,开始使用它。下面是一个使用UnityWebRequest
检索oauth2的示例。
请注意,这两个函数都是协程函数,必须使用startcroutine
函数启动,比如startcroutine(GetAccessToken())
和
启动例程(makeRequestWithToken(“YourToken”)
。
我正在尝试使用Web服务。我需要获取令牌并在授权标头中发送此令牌,我正在获取令牌,但在服务器中存在问题,因为令牌是v1并且他们正在使用v2。 这是我用来获取代码的网址 https://login.microsoftonline.com/tenant/oauth2/v2.0/authorize?response_type=code 这是获取令牌的url https://login.microsoft
为了能够在令牌过期后访问该用户的数据,我还需要存储刷新令牌。我知道如何在使用服务器端Google OAuth2库(指定access_type=offline)时做到这一点,但我需要能够使用客户端Javascript库来做到这一点,但它不起作用。
下面是security.xml文件,我正在使用它合并spring-security-oauth2。 我必须在spring-security.xml文件中做哪些更改,以便在JSON中发送查询参数?
如何在android中使用webView获取oAuth2令牌?我知道如何创建一个webview并打开url以获取oAuth2令牌,但我不知道如何在获取后从webview切换回应用程序,并将oAuth2token复制到变量中,有人知道如何做到这一点或知道一个好的tut吗?p、 s.我正在尝试获取oAuth2令牌以访问google api
我想使用上传一个pdf文件到Google Drive,用于自动测试目的。 我已经在Google云平台上创建了一个帐户(获得了客户端ID和机密),并启用了Google Drive API。 谢了。
我们希望使用SpringOAuth2JWT令牌支持。我们的架构如下:Spring只提供了一个REST接口,前端由AngularJS构建,AngularJS查询Spring REST接口。出于授权目的,我们的前端团队希望使用JWT。因此,我查看了SpringOAuth2JWT支持,但仍然不知道如何与前端讨论JWT令牌。在阅读了一些教程后,我实现了以下内容: 我不确定工作流程如何。我猜:前端访问/oa