使用hello.js自定义OAuth2提供程序

时间:2015-03-06 12:32:35

标签: javascript oauth-2.0 hello.js

我正在使用符合RFC6749的自定义OAuth2授权服务器(旧的初始版本@ https://github.com/gvaduha/OAuth2CppLib),并希望将hello.js用于单页客户端。我从一开始就做了什么:

  1. 创建了src / modules / myoauth.js
  2. (function(hello){
      hello.init({
        myoauth : {
            name : 'myoauth',
    
            oauth : {
                version : 2,
                auth : 'https://localhost/oauth2/authorize',
                grant : 'https://localhost/oauth2/token'
            },
            refresh : false,
            scope : {
                basic   : 'profile'
            },
            scope_delim : ' ',
            base : 'https://localhost/',
            get : {
                "me"    : "profile"
            },
        }
      });
    })(hello);
    
    1. 将提供程序添加到demos / client_ids.js
    2. var CLIENT_IDS = {
          myoauth : 'OAuthTestClientId',
          windows : WINDOWS_CLIENT_ID,
          google : GOOGLE_CLIENT_ID,
          facebook : FACEBOOK_CLIENT_ID
      };
      
      1. 将以下行添加到demos / login-events.html
      2. <button onclick="login('myoauth')">Login myoauth</button>
        <script src="../src/modules/myoauth.js"></script>
        

        但这一切都没有。当我在服务器身份验证之后单击登录页面然后授权然后页面回复302重定向到

        http://localhost/xxx/redirect.html#token_type=Bearer&access_token=XkGxfTVZWgdFuXTuc64du8DK375JurgOT2CDqv0QGd&expires_in=3600&

        当我关闭弹出页面时说

        callback:{
          "error": {
            "code": "cancelled",
            "message": "Login has been cancelled"
          },
          "network": "myoauth"
        }auth:{
          "error": {
            "code": "cancelled",
            "message": "Login has been cancelled"
          },
          "network": "myoauth"
        }auth.failed:{
          "error": {
            "code": "cancelled",
            "message": "Login has been cancelled"
          },
          "network": "myoauth"
        }
        

        我做错了什么?顺便说一句:当我改变它的id以指向我注册的应用程序客户端时,Google的工作正常。

1 个答案:

答案 0 :(得分:2)

OAuth2响应似乎没有保持“状态”状态。给定示例中的URI参数。