如何在隐式oauth期间使用angular获取instagram访问令牌?

时间:2016-02-26 21:15:02

标签: angularjs oauth token instagram

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

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将其删除之前删除#或强制使用angular来忽略#?

1 个答案:

答案 0 :(得分:0)

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

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

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

在index.html中设置一个合适的基础href ...

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

2)我对这个荒谬的场景感到不安,只是为了发现稍微没有文档,如果你只想要一个feed,你可以用一个叫http的服务抓住用户的最后20个帖子......

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

不需要clientid或秘密。 无需访问令牌。