我正在以本机方式构建应用程序,并且需要通过Azure AD向服务器进行身份验证。我曾尝试在Google上进行搜索,但令人惊讶的是,与此相关的内容并不多。 我已经找到了这个库“ react-native-azure-ad”,但没有太多关于它的文档。我不明白如何使用它。 我的主要问题是:使用此库时,我需要在哪里放置服务器的URL,以便对其进行身份验证?
谢谢您的建议!
编辑:
这是我的代码:
import { ReactNativeAD, ADLoginView } from 'react-native-azure-ad'
const CLIENT_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
class LandingView2 extends React.Component {
constructor(props) {
super(props)
this.AzureADContext = {
client_id: CLIENT_ID,
// Optional
redirect_url: 'http://localhost:8080',
// Optional
authority_host: 'xxxx',
// Optional
tenant: 'common',
// Optional
prompt: 'none',
// Optional
login_hint: 'user@domain.com',
// This is required if client_id is a web application id
// but not recommended doing this way.
client_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
resources: [
'https://graph.microsoft.com',
'https://outlook.office365.com',
// ... more resources
]
}
}
render() {
new ReactNativeAD({
client_id: CLIENT_ID,
resources: [
'https://outlook.office365.com'
]
})
return <ADLoginView
context={ReactNativeAD.getContext(CLIENT_ID)}
onSuccess={this.onLoginSuccess.bind(this)} />
}
onLoginSuccess(credentials) {
console.log(credentials['https://outlook.office365.com'].access_token)
// use the access token ..
}
}
答案 0 :(得分:1)
您需要在AAD中创建两个应用程序。
然后,您可以将API的clientId或AppID URI用作问题中显示的代码的“资源”。所有其他参数均从您的客户端应用中获取。
如果一切成功,您将获得一个访问令牌,您可以将其用作调用API时的承载令牌。
credentials['https://yourtenant.onmicrosoft.com/yourapiname'].access_token