안녕하세요 @EnvironmentObject를 RequestInterceptor에서도 사용할 수 있나요?
안녕하세요.
이 부분을 듣다가 궁금한게 생겨서 질문드립니다.
제 프로젝트에서 Alamofire를 사용 중인데 RequestInterceptor를 활용해서 JWT 관리 로직을 다루려고 하고 있습니다.
궁금한 점은 로직 중에 JWT가 만료되거나 사라지면, 로그인/회원가입 뷰로 돌아가게 만들고 싶은데 RequestInterceptor에서 EnvironmentObject를 접근해서 변경할 수 있나요?
변경할 수 없다면, 어떤 방식을 사용하면 JWT가 변경됐을 때 뷰를 다시 그릴 수 있을까요?
답변 1
1
안녕하세요
말씀해주신 부분 고민해서 예제 코드를 한번 만들어봤는데요.
import SwiftUI
struct ContentView: View {
@AppStorage("login") var 로그인여부: Bool = false
var body: some View {
ZStack {
if 로그인여부 {
로그인되었을때 뷰()
} else {
로그인안되었을때 뷰(회원가입 등)()
}
}
}
}
struct 로그인되었을때 뷰: View { //다른 화면
@AppStorage("login") var 로그인여부: Bool = true
...
}
이런식으로 ZStack으로 if문에따라 뷰를 2개 만들어놓고, 로그인여부 변수에 true, false 값에 따라 뷰를 나타내게 만들 수 있습니다.
AppStorage는 어느 화면에서나 접근할 수 있기 때문에 쉽게 변경가능하고요.
혹은 다른 방법으로는 notification center를 이용하는 방식도 있습니다.
UIKit에서는 보통 로그인 여부에 따라 특정 화면이나 동작이 수행되어야 할때, notification center를 많이 씁니다.
감사합니다
진로에 대한 질문...!
0
17
0
Static 선언 시 에러 발생
0
39
1
클로저의 형태로 만들다
0
43
1
Function Types Error
0
35
1
안드로이드 기기 실행 오류
0
46
2
수강연장 가능할까요...
0
55
2
강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.
0
56
2
SwiftData 미리보기 미적용
0
53
2
중괄호와 함수
0
56
2
기본 뷰 디자인이 강사님과 다릅니다.
0
53
2
이미지 2x, 3x 질문
0
43
2
강의를 다 듣고난 후
0
68
2
android crud중 c 영상이 12초만 있는 잘린 영상이에요.
0
65
2
수강 기간 연장 문의
0
66
1
수강연장부탁드려도될까요..
0
82
2
Combine Playground 에서 실행 시
0
95
2
70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문
0
75
1
searchable이 화면 하단에 위치해요
0
92
2
Drawing Cycle 관련 질문
0
95
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
130
2
예제 코드가 안나와요
0
107
2
혹시 RxSwift 강의 계획도 있으신지 궁금합니다.
1
123
1
@Environment 질문 있습니다.
1
90
1
@State 관련 질문입니다
1
279
3





