首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序不使用MSAL从缓存中获取访问令牌(react-aad-msal)

应用程序不使用MSAL从缓存中获取访问令牌(react-aad-msal)
EN

Stack Overflow用户
提问于 2020-01-17 22:33:37
回答 2查看 1.2K关注 0票数 1

authProvider.getAccessToken()为每个API调用调用身份验证端点,而不是从缓存中获取它。

我不知道问题出在Msal中的AcquireTokenSilent还是react-aad-msal中的getAccessToken。

使用msal1.2.1和react-aad-msal2.3.2

Api调用帮助器:

代码语言:javascript
复制
import { config } from '../config';
import { authProvider } from './../authProvider';

export const callApi = async (method: 'GET' | 'POST' | 'PUT' | 'DELETE', path: string, data?: any) => {
  const token = await authProvider.getAccessToken();

  const res = await fetch(`${config.API_ENDPOINT}/api/${path}`, {
    method,
    headers: {
      Authorization: 'Bearer ' + token.accessToken,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(data),
  });

  return res.json();
};

配置:

代码语言:javascript
复制
import { MsalAuthProvider, LoginType } from 'react-aad-msal';

// Msal Configurations
const config = {
  auth: {
    authority: 'https://login.microsoftonline.com/<my tenant id>',
    clientId: '<my client id>',
  },
  cache: {
    cacheLocation: 'localStorage',
    storeAuthStateInCookie: false,
  },
};

// Authentication Parameters
const authenticationParameters = {
  scopes: ['offline_access'],
};

// Options
const options = {
  loginType: LoginType.Redirect,
  tokenRefreshUri: window.location.origin + '/auth.html',
};

export const authProvider = new MsalAuthProvider(config, authenticationParameters, options);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-31 15:56:28

我修复了这个问题,从作用域中删除了'offline_access‘,因为它似乎是隐式添加的,手动添加它会导致MSAL找不到缓存的令牌,因为作用域被用作键。

我还必须添加我的自定义作用域,在我的例子中是'User.Read‘

代码语言:javascript
复制
const authenticationParameters = {
  scopes: ['User.Read'],
};
票数 0
EN

Stack Overflow用户

发布于 2020-01-27 18:48:08

我遇到了同样的问题,尝试将所需的作用域添加到访问令牌请求中。

代码语言:javascript
复制
const token = await authProvider.getAccessToken({
  scopes: ['offline_access']
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59789433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档