1

Twitter でのみ許可されている (無効と見なされる)議論によると、私は Twitter で Oauth2 をテストしています。127.0.0.1localhost

Javascript を使用してポップアップ ウィンドウを開き、登録した url へのコールバックを検出しています。https://127.0.0.1:8144/Oauth2Callback

ただし、私の JavaScript は から作成されたものであり、情報源localhostによると、「同じ作成元」ポリシーでは 2 つが異なると見なされます。

127.0.0.1からへのリダイレクトを作成するにはどうすればよいlocalhostですか?

私は Java と tuckey-url-rewrite を使用しているので、どちらでも機能します。


私のコントローラーは次のようになります。

@RequestMapping("/oauth2callback")
@ResponseBody
public String callback() {
    return "oauth2callback";
}

<rule>
    <name>Twitter Hack</name>
<condition name="host" operator="equal"> ??? 127.0.0.1 ??? /condition>
    <from>(.*)</from>
    <to type="redirect"> ??? localhost ???</to> 
</rule>

私が欲しい:

twitter --(callback)--> 127 --(redirect)--> localhost

4

2 に答える 2

0

これはうまくいくようです:

@RequestMapping("/oauth2callback")
public String callback(HttpServletRequest request) {

    /*
     * Terrible hack for testing Twitter Oauth on 'localhost'
     */
    if (request.getServerName().contains("127.0.0.1")){
        int port = request.getServerPort();
        String query = (request.getQueryString() == null) ? "" : "?" +request.getQueryString();
        String url = "redirect:https://localhost:" + port +"/oauth2callback" + query;
        return url;
    }

    return "account/oauth2callback";
}

account/oauth2callbackのみを持つ単純な jsp です。

<body>
    <p>oauth2callback</p>
</body>

tuckey-url-rewrite を使用してこれを行うには、おそらくより良い方法があります。

于 2013-10-03T21:01:20.270 に答える