현재 다음을 사용하여 하늘빛 광고에서 로그인을 시도하고 있습니다.
react-native-azure-auth
이 코드 사용 :
let tokens = await this.azureAuth.webAuth.authorize({ scope: 'offline_access profile User.ReadBasic.All Mail.Read' ,})
이제 잘 작동합니다. "offline_access"범위를 전달하고 포털에서 설정하지만 응답에서 새로 고침 토큰을 얻지 못하고 범위 필드에 offline_access가 없습니다.
이것은 예입니다 :
{"clientId":"69ab--04ccfbf","rawIdToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsxNDV0c2kwX2YwWndQYmh1WGlIMWpQ2diNUZnWHhUZVkiLCJ0aWTIzOS0zYjcxLTRmZjEtODk0Ny1mODZkGkiOiIzRlR1RkVlbG1raU9IUEVWbkNkT0FBIiwidmVyIjoiMi4wIn0.qQNLG2-kJ1CXIn8B4P8GUGimtT9WAiv5AaWhwl-Po_F14Oh8ZfAWTjaI8SQrnHfoHdbZY5_3nwjRT8Fz283Xy1bBKsgRCB75p936oO4ggPt4Mdhngzm3-xxRVvq8ysECaPlcQUFN9d6st4arly8umRypzyE6w","userId":"[email protected]","userName":"My name","tenantId":"2b555239-3b51-4f33-8944-f81111111e0","idTokenExpireOn":1594309415000,"accessToken":"eyJ0eXAiYS0wNDgwYTIwY2NmYmYiLCJhcHBpZGFjciI6IjAiLCJmYW1pbHlfbmFtZSI6IlR3aW5hIiwiZ2l2ZW5fbmFtZSI6Illhbml2IiwiaXBhZGRyIjoiNxMC4xNDkiLCJuYW1lIjoiWWFuaXYgVHdpbmEiLCJvaWQiOiJhNTViMjQyMy00MGZiLTRkYjQtODk0Mi02Zjg5OTBjYjE0ZmGF0ZiI6IjEiLCJwdWlkIjoiMTAwMzIwMDA4RkI1MDQ4NyIsInNjcCI6Ik1haWwuUmVhZCBvcGVuaWQgcHJvZmlsZSBVc2VyLlci5SZWFkQmFzaWMuQWxsIGVtYWlsIiwic2lnbmluX3N0YXRlIjpbImttc2kiXSwic3ViIjoiZmc5WXdIMDMwc3RRUkMzV19NMDhiRXFfRW5BeTc0ZGg4RWpScyIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6IjJiZTJhMjM5LTNiNzEtNG3LWY4NmQ1OWUxNjZlMCIsInVuaXF1ZV9uYW1lIjoiWVR3aW5hQGlhaS5jby5pbCIsInVwbiI6IllUd2luYUBpYWkuY28uOiIzRlR1RkVlbG1raU9IUEVWbkNkT0FBIiwidmVyIjoiMS4wIiwieG1zX3N0Ijp7InN1YiI6IlZzLUwxNDV0c2kwX2YwWndQYmh1WGlIMWpQYTZoaGhiN2diNUZnWHhUZVkifSwieG1zX3RjZHQiOjE0NTE1NDMyNTl9.J9WGrG34tAs9zWF3hb5cfclWVyDSwbr082cMj1psaTqGf8SRl2Ji-ABc4mvD8AGo4nnLiH69J0M5oe9pi2041nymfqu6w_QZsg7QqPG24XnZ17SrBNOj8pyBI4i6dWL8QQM-k2cLGesKVl33h1qCo4IvKhzZFdxf6-NRIXsaP8-I-4oDCZD1n7vpSliJ5HSsp5Y3MhpF6IEzVgo4Drh2ZCwYuKLiWrEu6jG_kmXEmyOf0Fw"
,**"scope":{"scopeStr":"email mail.read user.read user.readbasic.all","scope":["email","mail.read","user.read","user.readbasic.all"]},**"expireOn":1594309417216}
내가 놓친 아이디어가 있습니까?
주석에서 언급했듯이이 링크의 아래 코드를 사용할 수 있으며 캐시 된 토큰을 가져 오거나 만료 된 토큰을 새로 고칠 수 있습니다. 현재 액세스 토큰이 만료 될 때 새 액세스 / 새로 고침 토큰 쌍을 가져 오는 데 새로 고침 토큰이 사용되므로 새로 고침 토큰을 가져올 필요가 없습니다.
try {
// Try to get cached token or refresh an expired ones
let tokens = await azureAuth.auth.acquireTokenSilent({scope: 'Mail.Read', userId: this.state.userId})
if (!tokens) {
// No cached tokens or the requested scope defines new not yet consented permissions
// Open a window for user interaction
tokens = await azureAuth.webAuth.authorize({scope: 'Mail.Read'})
}
let mails = await azureAuth.auth.msGraphRequest({token: tokens.accessToken, path: '/me/mailFolders/Inbox/messages'})
} catch (error) {
console.log(error)
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다