ScopeKey가 nuxt.js 인증 모듈에서 작동하지 않음
최근에 Nuxtjs 사용법을 배우기 시작했는데 Auth 모듈 사용법을 배우다가 문제가 생겼습니다.
로그인 할 수 있고 계정의 범위를 확인하고 싶습니다만, 「Auth」의 「scopeKey」속성을 사용하고 있습니다.백엔드에서 데이터베이스로부터 "scope"를 가져오면 "user" 또는 "admin" 중 하나입니다.
범위를 설정하려고 했습니다.
scopeKey: 'scope'
그러나 이 범위를 확인할 때 "정의되지 않음"/"null"로 표시됩니다.
this.$auth.hasScope('admin') / this.$auth.hasScope('user')
또는 "이것"입니다.$auth.hasScope(admin)"가 "scopeKey"를 로 설정하면 빈 값을 반환합니다.
scopeKey: 'data.scope'
또는
scopeKey: 'user.scope'
인증 전략은 다음과 같습니다.
auth: {
strategies: {
local: {
scopeKey: 'scope',
endpoints: {
login: {
url: 'api/auth/login',
method: 'post',
propertyName: 'token',
},
logout: {
url: 'api/auth/logout',
method: 'get'
},
user: {
url: 'api/me',
method: 'get',
propertyName: data
}
}
}
},
redirect: {
login: '/auth/login',
logout: '/',
callback: '/auth/login',
home: '/dash/'
}
}
다음은 로그인 시 인증 모듈이 읽는 json의 예입니다.
"data": {
"id": 2,
"name": "test1",
"email": "test@test.com",
"email_verified_at": null,
"scope": "admin",
"created_at": "2019-08-01 13:11:49",
"updated_at": "2019-08-01 13:11:49"
},
프런트 엔드 페이지의 스코프 값에 액세스 할 수 있습니다.
$auth.user.scope
또는 을 사용하여
$auth.$state.user.scope
그러나 "auth" 속성/전략을 설정하면서 어떻게 nuxt.config.js 파일의 "scopeKey" 속성에 "scope"를 지정할 수 있습니까?
편집:
auth 오브젝트 내부로 이동하거나 속성을 삭제하려고 시도했지만 여전히 false가 발생합니다.$auth.hasScope('admin')
그리고.$auth.hasScope('user')
즉,scopeKey
아직 미정의인데 왜 그랬는지 모르겠어요
scopeKey는 기본적으로 'scope'입니다.다시 설정할 필요가 없습니다.
저는 서버 측 변경을 통해 작업을 수행할 수 있었습니다.
문자열 값을 범위에 넣어도 동작하지 않는다.
$data['scope'] = "admin";
근데 어레이로 바꾸니까$auth.hasScope('admin')
동작하다
$data['scope'] = array("admin", "test");
도움이 됐으면 좋겠다.
scopeKey: 'scope'
내부에 배치해서는 안 됩니다.strategies
물건.
에 직접 장착합니다.auth
물건.
P.S. 이 속성을 삭제할 수도 있습니다.auth
config 오브젝트, 이유'scope'
의 디폴트값입니다.scopeKey
.
어떻게든hasScope()
저도 동작하지 않기 때문에 사용자 오브젝트를 직접 확인했습니다.또한 응답에 토큰이 있습니다.응답에 사용자가 관리자인지 다른 사용자인지를 알려주는 유형 변수가 있습니다.
이것을 미들웨어에 추가하다
export default function ({ $auth, redirect }) {
if (!$auth.loggedIn) {
return redirect('/')
}
if ($auth.user.type != 'Super Admin') { // Super Admin or whatever the user you want to check
return redirect('/')
}
}
언급URL : https://stackoverflow.com/questions/57341292/scopekey-doesnt-work-in-nuxt-js-auth-module
'source' 카테고리의 다른 글
phpunit에서 단일 테스트 방법을 실행하는 방법은 무엇입니까? (0) | 2022.09.23 |
---|---|
같은 방식의 클래스 내 2개의 인터페이스를 실장한다.어떤 인터페이스 방식이 재정의됩니까? (0) | 2022.09.23 |
개체를 문자열로 변환 (0) | 2022.09.22 |
시간 범위 내에서 5분 간격으로 그룹화 (0) | 2022.09.22 |
10억 번째 상대 수입액 (0) | 2022.09.22 |