BrowserID

Команда Mozilla выступила с очередной инициативой и пытается пропихнуть новый способ универсальной аутентификации — BrowserID. На фоне тихо умирающего OpenID затея кажется граблями номер два. Хотя, черт его знает, может у этих что-то и получится. Грустная мораль ситуации с OpenID в том, что эволюцию веба, как говорил товарищ Ленин, определяет самое слабое звено. OpenID так и остался игрушкой для продвинутых, массы сочли для себя это слишком сложным для понимания.

10 комментариев

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

было
protected function url(&$url, &$href){
		$this->saveState();
		$url = '';
		$urlChMask = self::URL | self::ALPHA;
		
		if($this->matchStr('//')){
			while($this->curChClass & $urlChMask){
				$url.= $this->curCh;
				$this->getCh();
			}
			
			if(!strlen($url)) {
				$this->restoreState();
				return false;
			}
			
			$href = '//'.$url;
			return true;
		} elseif($this->matchStr('www.')){
			while($this->curChClass & $urlChMask){
				$url.= $this->curCh;
				$this->getCh();
			}
			
			if(!strlen($url)) {
				$this->restoreState();
				return false;
			}
			
			$url = 'www.'.$url;
			$href = '//'.$url;
			return true;		
		}
		$this->restoreState();
		return false;
	}

стало
protected function url(&$url, &$href){
			$this->saveState();
			$url = '';
			$urlChMask = self::URL | self::ALPHA | self::PUNCTUATUON;

			if($this->matchStr('//')){
				while($this->curChClass & $urlChMask){
					$url.= $this->curCh;
					$this->getCh();
				}

				if(!mb_strlen($url, 'UTF-8')) {
					$this->restoreState();
					return false;
				}

				$href = '//'.$url;
				return true;
			} elseif($this->matchStr('https://')){
				while($this->curChClass & $urlChMask){
					$url.= $this->curCh;
					$this->getCh();
				}

				if(!mb_strlen($url, 'UTF-8')) {
					$this->restoreState();
					return false;
				}

				$href = 'https://'.$url;
				return true;
			} elseif($this->matchStr('www.')){
				while($this->curChClass & $urlChMask){
					$url.= $this->curCh;
					$this->getCh();
				}

				if(!mb_strlen($url, 'UTF-8')) {
					$this->restoreState();
					return false;
				}

				$url = 'www.'.$url;
				$href = '//'.$url;
				return true;
			}
			$this->restoreState();
			return false;
		}
Gut, надо и у себя пропатчить.
У тебя какое-то кэширование используется? Пока ссылка все также отдается криво.
  • аватар SeL
  • 0
БроузерАйДи не самая лучшая идея на мой взгляд. Очень много людей не ограничивается одним компьютером, ну или хотя бы мобильным устройсвом. С другой же стороны часто бывает, что одним компьюером пользуется далеко не 1 человек. Да и в большинстве случаев достаточно просто OAuth. А в фейсобуке (и вконтактике для РФ) уже имеют аккуанты большинство пользователей интернета.
Во-первых тебя, наверное, сбило столку не совсем удачное название идентификатора, наверное оно сразу ассоциируется с чем-то вроде старой доброй HTTP-аутентификации.

Во-вторых, извини, но высказываешься не вникая в тему, догадываюсь, что по ссылкам не ходил и видео не смотрел, скорее всего только помедитировал на название идентификатора. Короче BrowserId не привязан ни к конкретному браузеру, ни к машине.

В-третьих,
в большинстве случаев достаточно просто OAuth

Ни хера ж себе просто, OAuth это уже не аутентификация, как бы между прочим, а авторизация. Народ, кто тут еще считает что авторизация == аутентификация? Это, как говорят у нас в Одессе, две большие разницы. Кстати, на эту тему как раз хорошая статья Сагалаева в третьей ссылке поста (опять же, скорее всего ты не заходил ;)

З.Ы. Пишу это не в защиту BrowserID, я сам высказался скептически по его поводу.
  • аватар SeL
  • 0
Действительно сбило, английский на слух я вообще не воспринимаю, поэтому видео смотреть мне бесполезно. Можно было бы суть передать своими словами кратко.
А вот по поводу Oauth я немного не догоняю: да, у разных сервисов разные API, но ведь их средствами можно произвести аутентификацию, например в фейсбуке, или я что-то не понимаю? Да и со стороны пользователя его имя или никнейм из соцсети смотриться красивее, чем к примеру nickname.servicename.com.
Извини, отвечу позже, я тут и без того отвлекся на гомосячину в соседнем посте, а меня тут по работе конь не валялся ишо.
Все же отвечу, хотя и кратко и пока закрою курскми нахер. Если что позже дам более развернутый ответ.

Суть простая, OAuth это механизм авторизации, то бишь доступ к некоему API от твоего лица, а не идентификация тебя как пользователя. То что благодаря этому API можно пройти аутентификацию — скорее бонус самого API. Поэтому выражение «просто OAuth» является не совсем точным в этой ситуации, поскольку подразумевает, что это операция более простая чем аутентификация, что не верно. Кроме того, OAuth имеет еще одну трудность, невозможность универсализации входа через эти сервисы. Процитирую статью Сагалаева, которую ты все же решил не читать:

И Твиттер, и Фейсбук используют OAuth, как деталь реализации, но в остальном у них нет ничего общего. Роли протоколов выглядят в этом случае так:

OAuth предоставляет сайту авторизацию на использование API Твиттера/Фейсбука
а вот уже через API можно провести аутентификацию («вход») пользователя, так как оба они предоставляют некую идентифицирующую информацию

Аналогия. «Вход через OAuth» — это ключи от машины, в которой по случаю оказались ещё и именные документы владельца.

Важно понимать, что поскольку аутентификацию предоставляет проприетарный API, это не «вход через OAuth», а «вход через Твиттер/Фейсбук». На практике это значит, что нельзя написать некую обобщённую OAuth-библиотеку для входа через любой произвольный сервис типа Твиттера и Фейсбука.

Чтобы оставлять комментарии, нужно или зарегистрироваться.