我在尝试从 VS Code 在 WSL 上 NPM INSTALL 包时遇到此错误。
npm ERR! Error: EACCES: permission denied, rename '/mnt/d/DEVRepo/PWS/functions/node_modules/cssstyle' -> '/mnt/d/DEVRepo/PWS/functions/node_modules/.cssstyle.DELETE'
npm ERR! [OperationalError: EACCES: permission denied, rename '/mnt/d/DEVRepo/PWS/functions/node_modules/cssstyle' -> '/mnt/d/DEVRepo/PWS/functions/node_modules/.cssstyle.DELETE'] {
npm ERR! cause: [Error: EACCES: permission denied, rename '/mnt/d/DEVRepo/PWS/functions/node_modules/cssstyle' -> '/mnt/d/DEVRepo/PWS/functions/node_modules/.cssstyle.DELETE'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'rename',
npm ERR! path: '/mnt/d/DEVRepo/PWS/functions/node_modules/cssstyle',
npm ERR! dest: '/mnt/d/DEVRepo/PWS/functions/node_modules/.cssstyle.DELETE'
npm ERR! },
npm ERR! stack: "Error: EACCES: permission denied, rename '/mnt/d/DEVRepo/PWS/functions/node_modules/cssstyle' -> '/mnt/d/DEVRepo/PWS/functions/node_modules/.cssstyle.DELETE'",
npm ERR! errno: -13, …Run Code Online (Sandbox Code Playgroud) 我正在使用带有 firebase 的 Angular 应用程序工作,并且在云函数中使用 firebase SDK 验证 idToken 时遇到困难。
当我尝试呼叫受保护的端点时,它开始,用户必须经过身份验证才能访问它,但是当我与经过身份验证的用户进行呼叫时,它没有成功。
首先,我检查 functions:log 以查看身份验证失败时记录的错误消息。
2018-07-18T13:10:11.575Z E api: Error while verifying Firebase ID token: { Error: Decoding Firebase ID token failed. Make sure you passed the entire string JWT which represents an ID token. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.
at FirebaseAuthError.Error (native)
at FirebaseAuthError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseAuthError.PrefixedFirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseAuthError (/user_code/node_modules/firebase-admin/lib/utils/error.js:143:16)
at FirebaseTokenVerifier.verifyJWT (/user_code/node_modules/firebase-admin/lib/auth/token-verifier.js:136:35)
at FirebaseTokenGenerator.verifyIdToken (/user_code/node_modules/firebase-admin/lib/auth/token-generator.js:129:37)
at Auth.verifyIdToken (/user_code/node_modules/firebase-admin/lib/auth/auth.js:124:37) …Run Code Online (Sandbox Code Playgroud) firebase firebase-authentication google-cloud-functions angular
我正在使用 angularfire2 使用 Angular6 应用程序。我在用户创建中将角色设置为自定义声明,但它似乎没有传播。
创建用户时,我将用户 ID、业务 ID 和角色发送到云功能:
出价 > 商业 ID
角色 > 角色
req.body.uid > 用户 ID
const customClaims = {
roles: { [bid]: urole }
}
admin.auth().setCustomUserClaims(req.body.uid, customClaims)
.then(result => {
res
.status(200)
.send()
})
Run Code Online (Sandbox Code Playgroud)
问题是当对云函数的调用完成时,我想将用户重定向到需要用户设置自定义声明的路由,但它失败了。经过一些调试,我发现如果运行:
this.angularFireAuth.auth.currentUser.getIdTokenResult(true).then(result => {
return result.claims.roles
})
Run Code Online (Sandbox Code Playgroud)
在调用云函数“result.claims.roles”之后立即未定义,但是如果我刷新页面,“result.claims.roles”就会有我之前设置的数据。
我已经尝试过 reload 方法和 getIdToken(true) 但我遇到了同样的问题。
有没有办法避免刷新页面并获得自定义声明?
谢谢!