Я пытаюсь кодировать свое первое приложение, используя React Native и Expo . Идея состоит в том, чтобы подключиться к электронной почте пользователя (либо Outlook, либо Google), вытащить несколько электронных писем на основе субъекта и отправителя и извлечь некоторую информацию из тел. Ожидаемое значение - это URI, который соответствует ERI перенаправления, зарегистрированного для этого клиентского приложения . Любое объяснение относительно того, что эти перенаправляющие URI были бы более чем приветствуются < /p>
в Azure, в части аутентификации я добавил две платформы, одну для iOS и еще один для Интернета. Веб -сайт просит перенаправить URI напрямую, в то время как iOS один создал по умолчанию после того, как я дал ему идентификатор пакета. Я даже попробовал обходной путь, используя страницы GitHub, но до сих пор ничего не сработало. < /P>
мой код: < /p>
import { makeRedirectUri, useAuthRequest, ResponseType } from 'expo-auth-session';
import * as WebBrowser from 'expo-web-browser';
WebBrowser.maybeCompleteAuthSession();
const discovery = {
authorizationEndpoint: 'https://login.microsoftonline.com/commo ... /authorize',
tokenEndpoint: 'https://login.microsoftonline.com/commo ... v2.0/token',
};
export const useMicrosoftAuth = () => {
const redirectUri = makeRedirectUri({
scheme: 'finky', // Must match app.json scheme
path: 'redirect'
});
console.log('Microsoft Redirect URI:', redirectUri); // prints Microsoft Redirect URI: exp://172.20.10.3:8081/--/redirect
const [request, response, promptAsync] = useAuthRequest(
{
clientId: process.env.EXPO_PUBLIC_MICROSOFT_CLIENT_ID!,
scopes: ['openid', 'profile', 'User.Read', 'Mail.Read'],
redirectUri,
responseType: ResponseType.Token, // For direct token response
},
discovery
);
const signIn = async () => {
try {
const result = await promptAsync();
if (result?.type === 'success') {
return result.authentication?.accessToken;
} else if (result?.type === 'error') {
console.error('[Microsoft SignIn] Authentication error:', result);
} else if (result?.type === 'dismiss') {
console.warn('[Microsoft SignIn] Authentication dismissed by user.');
} else {
console.warn('[Microsoft SignIn] Unexpected result:', result);
}
return null;
} catch (error) {
console.error('[Microsoft SignIn] Exception during sign-in:', error);
return null;
}
};
return { signIn, redirectUri };
};
Подробнее здесь: https://stackoverflow.com/questions/796 ... th-session
Аутентификация с Expo-Auth-Session ⇐ Javascript
Форум по Javascript
1750782892
Anonymous
Я пытаюсь кодировать свое первое приложение, используя [b] React Native и Expo [/b]. Идея состоит в том, чтобы подключиться к электронной почте пользователя (либо Outlook, либо Google), вытащить несколько электронных писем на основе субъекта и отправителя и извлечь некоторую информацию из тел. Ожидаемое значение - это URI, который соответствует ERI перенаправления, зарегистрированного для этого клиентского приложения . Любое объяснение относительно того, что эти перенаправляющие URI были бы более чем приветствуются < /p>
в Azure, в части аутентификации я добавил две платформы, одну для iOS и еще один для Интернета. Веб -сайт просит перенаправить URI напрямую, в то время как iOS один создал по умолчанию после того, как я дал ему идентификатор пакета. Я даже попробовал обходной путь, используя страницы GitHub, но до сих пор ничего не сработало. < /P>
мой код: < /p>
import { makeRedirectUri, useAuthRequest, ResponseType } from 'expo-auth-session';
import * as WebBrowser from 'expo-web-browser';
WebBrowser.maybeCompleteAuthSession();
const discovery = {
authorizationEndpoint: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
tokenEndpoint: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
};
export const useMicrosoftAuth = () => {
const redirectUri = makeRedirectUri({
scheme: 'finky', // Must match app.json scheme
path: 'redirect'
});
console.log('Microsoft Redirect URI:', redirectUri); // prints Microsoft Redirect URI: exp://172.20.10.3:8081/--/redirect
const [request, response, promptAsync] = useAuthRequest(
{
clientId: process.env.EXPO_PUBLIC_MICROSOFT_CLIENT_ID!,
scopes: ['openid', 'profile', 'User.Read', 'Mail.Read'],
redirectUri,
responseType: ResponseType.Token, // For direct token response
},
discovery
);
const signIn = async () => {
try {
const result = await promptAsync();
if (result?.type === 'success') {
return result.authentication?.accessToken;
} else if (result?.type === 'error') {
console.error('[Microsoft SignIn] Authentication error:', result);
} else if (result?.type === 'dismiss') {
console.warn('[Microsoft SignIn] Authentication dismissed by user.');
} else {
console.warn('[Microsoft SignIn] Unexpected result:', result);
}
return null;
} catch (error) {
console.error('[Microsoft SignIn] Exception during sign-in:', error);
return null;
}
};
return { signIn, redirectUri };
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79677928/authentication-with-expo-auth-session[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия