如何在Tizen中实现oAuth 2.0

时间:2013-03-19 11:50:24

标签: javascript jquery oauth-2.0 tizen tizen-web-app

我正在尝试使用Tizen中的oAuth 2.0实施Google身份验证。我正在跟踪here的步骤。根据链接的说明,我可以获得用户代码。但我总是得到无效的获取访问和刷新令牌的请求。我的要求如下。

var urlToken ="https://accounts.google.com/o/oauth2/token?"+ 
        encodeURI("client_id=<<my client id>>&" +
        "client_secret=<<my client secret>>&" + 
        "code=<<Device code received in first step>>&" +
        "grant_type=authorization_code");
$.ajax({
    url:urlToken,
    type:"POST",        
    headers:{
        "Content-Type": "application/x-www-form-urlencoded",
        "Content-length" : "250"
    },
    accepts: "applicatin/json",
    success:function(response){
        console.log("access token response success");
        console.log(response.access_token)
    },
    error:failure
});

我无法弄清楚出了什么问题。请更新它有任何其他方法来实现相同的。

注意:我正在尝试从Tizen Webapp实现此功能。

1 个答案:

答案 0 :(得分:1)

我使用以下代码。我通过在查询字符串中标记数据以及明确设置content-type和content-length来犯了一个错误。内容类型默认为“application / x-www-form-urlencode”。通过随机点击获得解决方案。

var urlToken ="https://accounts.google.com/o/oauth2/token"+ 
var dataValue = "client_id=<<my client id>>&" +
        "client_secret=<<my client secret>>&" + 
        "code=<<Device code received in first step>>&" +
        "grant_type=http://oauth.net/grant_type/device/1.0";
$.ajax({
    url:urlToken,
    data:dataValue,
    crossDomain:true,
    type:"POST",
    success:function(response){
      if(response.error != null){
            <<Call the same function again>>;
        }
        else{
            console.log("Access Token :" + response.access_token);
            console.log("Token Type : " + response.token_type);
            console.log("Expires : " + response.expires_in);
            console.log("Refresh Token : " + response.refresh_token);
        }
    },
    error:failure
});

感谢WTK

我相信thisthis会有所帮助