OAuth 2 авторизация через сторонние сервисы

Вопрос следующий.
В Oauth2 если тип авторизации authorization code. Он позразумевает переход по внешней ссылке, разрешение прав для приложения на стороне сервиса и потом происходит переход на callback страницу с code параметром, после этого отправляется code на сервис и получаем заветный access_token.

Поэтому тут несколько вопросов
1) Как сделать callback_url на стороне bpm?
2) Как и куда записывать данные (скажем access_token)

И пара вопросов мимо кассы,
1) В документации очень много оперируеться зависимости модулей (первый параметр для define в js коде), если ли где-то список всех этих модулей и их методов (или все ViewModels реализуют одни и те же методы?)
2) Как получить public URL (или даже content) для attachment file (http://joxi.ru/EA4vGklIwqq0nm), ссылка которая указана там (в Web интерфейсе), являеться доступной только для авторизированого пользовталея который имеет к нему доступ
3) Где посмотреть реальные данные приложения (скажем у меня есть несколько вкладок и в каждой из них есть по 3 файла, я хочу посмотреть где-то данные по этим файлам, и хочу получить по ним info прямо в JS)

Нравится

2 комментария

Короче по поводу OAuth2 оказалось все просто, нужно создать C# файл через создание в пакете Исходного кода и вводим следующее

public class TestService
	{
		[OperationContract]
		[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public string callback(string data)
		{
			var request = HttpContext.Current.Request;
			using (var client = new WebClient())
			{
				var values = new NameValueCollection();
				values["grant_type"] = "authorization_code";
				values["code"] = request["code"];
				values["client_id"] = "CLIENT_ID";
				values["client_secret"] = "SECRET";
				values["redirect_uri"] = "https://SOME_DOMAIN.bpmonline.com/0/rest/TestService/callback";
 
				var response = client.UploadValues("ACCESS_TOKEN_RETRIEVE_DOMAIN", values);
				var responseString = Encoding.Default.GetString(response);
				return responseString;
			}
			return "Error";
		}
	}

На стороне сервиса где авторизируемся создаем приложение указываем https://SOME_DOMAIN.bpmonline.com/0/rest/TestService/callback как REDIRECT_URI и получаем то что и требовалось, после предоставления доступа к сервису переходим в BPM CRM в созданный клас, и видим ACCESS TOKEN информацию

Здравствуйте!

1) "первый параметр для define в js коде"
Первый параметр в Define - это название модуля, по которому его потом можно загружать.
http://requirejs.org/docs/api.html#modulename

"если ли где-то список всех этих модулей и их методов"
Списка нету. Все клиентские схемы, добавленные в конфигурации,
объявляются с использованием Define.

"или все ViewModels реализуют одни и те же методы?"
Учитывая что ViewModels обычно используют "базовую" ViewModel,
то базовые методы в них одни и теже. Но также могут содержатся новые,
добавленные в расширяющей ViewModel.

2) Для получения прикрепленных файлов используется конфигурационный сервис FileService.
Пример:
http://bpmonline/0/rest/FileService/GetFile/e9eafee9-c4e4-4793-ad0a-003…
В нём используется userConnection текущего пользователя.
Исходя из этого - скачать файл у неавторизованного пользователя не получится,
даже если у него будет ссылка.

3) Не понял вопрос. Вкладки в браузере? Какие 3 файла? Какую инфу JS хотите видеть?

Показать все комментарии