import { AuthModule, OidcSecurityService } from 'angular-auth-oidc-client'; import { HttpClient, HttpHeaders } from '@angular/common/http';
constructor( private oidcSecurityService: OidcSecurityService, private http: HttpClient ) {}
this.oidcSecurityService.userData$.subscribe(userInfo => {
if (userInfo) {
const headers = new HttpHeaders({
'Authorization': Bearer ${this.oidcSecurityService.getToken()}
});
// 发送HTTP请求获取用户角色
this.http.get('https://example.com/roles', { headers }).subscribe(roles => {
console.log('User roles:', roles);
});
}
});
// 在请求头中读取token const token = req.headers.authorization.split(' ')[1]; // 验证token jwt.verify(token, 'secret-key', (err, decoded) => { if (err) { res.status(401).json({ error: 'Invalid token' }); } else { const userId = decoded.sub; // 查询用户角色 User.findById(userId).select('roles').exec((err, user) => { if (err) { res.status(500).json({ error: err }); } else { res.json(user.roles); } }); } });