Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2013, 21:38
Новичок на форуме
Отправить личное сообщение для AtomoS Посмотреть профиль Найти все сообщения от AtomoS
 
Регистрация: 02.11.2008
Сообщений: 3

Авторизация с помощью ВК (OAuth)
Всем привет)

Попробовал сегодня сделать авторизацию через ВК — что-то вроде получилось, тем не менее возникло несколько вопросов:
  1. Почему $http.get(..) не хочет работать с https?
  2. Реально ли сделать callback от ВК через $routeProvider?

Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2013, 18:26
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Callback к примеру при авторизации ?


Точно не знаю, но но для open api(эта авторизация насколько я понимаю является надстройкой над oAuth ) можно попробывать просто сделать переадресацию роутера из кэлбека. Вроде как $location позволяет делать переадресацию.

VK.Auth.login(function(response) {
                if (!response.session) {
                    alert('вы не можете войти используя этот акаунт');
                    return;
                }
              scope.$apply(function() { $location.path("/route"); });
}, VK.access.FRIENDS | VK.access.WIKI);

Это на вскидку. Узнаешь точнее отпишись
Вообще тебе надо создать в ангуляре сервис ответственный за авторизацию.

Про htpps я ХЗ. Гугли, может и не в нем дело.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 25.09.2013 в 00:30.
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2013, 22:47
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Я любопытства ради попробывал сделать авторизацию в VK.
Идея в том что хитрый метод access (в котором был кэлбек логикой доступной только авторизованных) вызывал кэлбек если пользователь уже авторизован, либо вызывал окно авторизации и вызывал кэлбек после авторизации.

Собственно это идея сквозного функционала, теперь в любой директиве или контролере можно делать защищенные участки кода которые выполнятся только для авторизованных пользователей.

<!DOCTYPE HTML>
  <html ng-app="project">
    <head>         
      <script src="//vk.com/js/api/openapi.js"></script>
      <script src="http://code.angularjs.org/angular-1.0.1.js"></script>    
    </head>
    <body >      
    <script>      
      
  var projectModule = angular.module('project',[]);  
  projectModule.factory('user', function() {      
   var vk = {
     data: {}, 
     appID: 3896712, // как веб сайт
     appPermissions: 16,

     //инициализация
     init: function(){      
       VK.init({apiId: vk.appID});                      
     },

     //метод входа
     login:function(callback){                    
       
        function authInfo(response){     
             if(response.session){ // Авторизация успешна
               vk.data.user = response.session.user;
               callback(vk.data.user);                            
             }else {
               alert("Авторизоваться не удалось!");
             }     
        }                       
    
        VK.Auth.login(authInfo, vk.appPermissions);
     },

     //метод проверки доступа
     access:function(callback){
       VK.Auth.getLoginStatus(function(response) { 
         if(response.session){ // Пользователь авторизован
           callback(vk.data.user);
         }else { // Пользователь не авторизован
           vk.login(callback);         
         }                    
       })     
     },

     logout:function(){
       VK.Auth.logout();
       this.data.user={};
       alert('вы вышли');
     }
   
  }
  
   vk.init();       
   return vk;     
    
  });
  
      
  function FirstCtrl($scope, user) {	    
    $scope.logout=function(){
       user.logout();
    }

    user.access(function(usr){
       alert('Этот код исполнится только для авторизованных');
       console.log(usr);      
    });
    
  }         
      </script>
  
      <div ng-controller="FirstCtrl">
        <button ng-click="logout()">Разлогинится</button>		   		
      </div>
  
    </body>
  </html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 25.09.2013 в 02:33.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Общие вопросы Javascript 1 16.08.2013 12:02
авторизация вконтакте через oauth tadjik1 AJAX и COMET 7 24.04.2012 12:06
Получить значение ячейки с помощью onclik Space-06 Events/DOM/Window 4 10.01.2012 09:39
Авторизация с помощью PHP bayah Серверные языки и технологии 7 03.08.2010 15:47
Авторизация в модальном окне с помощью jQuery A.N.R.I jQuery 17 01.03.2010 19:26