如何在隐式oauth期间使用角度获取Instagram访问令牌



由于此应用程序旨在在没有服务器支持的情况下运行,并且我使用的是Angular,因此我无法捕获隐式oauth令牌,因为Angular不会容忍URL中的第二个哈希爆炸(#)。

Instagram将用户重定向回 http://127.0.0.1:8080/#/oauth/#access_token=TOKEN,Angular自动将用户重定向回 http://127.0.0.1:8080/#/

我的路由代码:

app.config(function($routeProvider) {
    $routeProvider
    .when('/', {
        templateUrl: 'templates/index/index.html',
        controller: 'IndexController',
        controllerAs: 'index'
    })
    .when('/oauth/:token', {
        templateUrl: 'templates/oauth/index.html',
        controller: 'OAuthController',
        controllerAs: 'oauth'
    });
    .otherwise({
        redirectTo: '/'
    });
});

有没有办法我可以在 Angular 弄清楚之前删除 # 或强制角度忽略 #?

目前还不清楚你在这里想要实现什么,但我有几个金块可能会有所帮助。

1) 使用 html 5 模式删除哈希。(在你的app.config块中...

    $locationProvider.hashPrefix('!');
    $locationProvider.html5Mode(true);

在您的索引中.html设置适当的基本 href...

<base href="/" target="_blank">

2)我一直在纠缠这个荒谬的场景,只是为了发现如果你只是想要一个提要,你可以通过调用http的服务来获取用户的最后20个帖子,比如......

 $http({
    method: 'GET',
    url: 'http://www.instagram.com/USERNAME/media',
    responseType: 'json'
  })

无需客户端 ID 或密钥。无需访问令牌。

最新更新