浏览器不会将我重定向到 Twitter 进行授权



我的问题是我的视图没有将我重定向到Twitter身份验证页面。

我正在做本教程:https://spring.io/guides/gs/accessing-twitter/

当我运行localhost:8080/connect/twitter时,我得到这个视图:

<html>
    <head>
        <title>Hello Twitter</title>
    </head>
    <body>
        <h3>Connect to Twitter</h3>
        <span th:if="${social_provider_error}">Provider error (maybe you need to configure the app id and secret?)</span>
        <form action="/connect/twitter" method="POST">
            <div class="formInfo">
                <p>You aren't connected to Twitter yet. Click the button to connect this application with your Twitter account.</p>
            </div>
            <p><button type="submit">Connect to Twitter</button></p>
        </form>
    </body>
</html>

当我点击submit时,我收到了social_provider_error。有什么想法可以解决这个问题吗?

我的application.proporties位于src/main/resources

spring.social.twitter.app-id=XG5...
spring.social.twitter.app-secret=i0T...

应用.java

package application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

控制器.java

package controller;
import javax.inject.Inject;
import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.twitter.api.CursoredList;
import org.springframework.social.twitter.api.Twitter;
import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
public class TwitterController {
    private Twitter twitter;
    private ConnectionRepository connectionRepository;
    @Inject
    public TwitterController(Twitter twitter, ConnectionRepository connectionRepository) {
        this.twitter = twitter;
        this.connectionRepository = connectionRepository;
    }
    @RequestMapping(method=RequestMethod.GET)
    public String helloTwitter(Model model) {
        if (connectionRepository.findPrimaryConnection(Twitter.class) == null) {
            return "redirect:/connect/twitter";
        }
        model.addAttribute(twitter.userOperations().getUserProfile());
        CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
        model.addAttribute("friends", friends);
        return "hello";
    }
}

解决方案

代码显然没问题。我错过了输入http://127.0.0.1:8080/connect/twitter Callback-URL

最新更新