· 6 years ago · Jul 13, 2019, 10:34 AM
1$this->validator($request->all())->validate();
2
3 event(new Registered($user = $this->create($request->all())));
4
5 $client = Client::where('password_client', 1)->first();
6
7
8
9 $request->request->add([
10 'grant_type' => 'password',
11 'client_id' => $client->id,
12 'client_secret' => $client->secret,
13 'username' => $request->all()['email'],
14 'password' => $request->all()['password'],
15 'scope' => null,
16 ]);
17
18 // Fire off the internal request.
19 $token = Request::create(
20 'oauth/token',
21 'POST'
22 );
23 return Route::dispatch($token);
24
25public class TokenManager {
26
27private SharedPreferences prefs;
28private SharedPreferences.Editor editor;
29
30private static TokenManager INSTANCE = null;
31
32private TokenManager(SharedPreferences prefs){
33 this.prefs = prefs;
34 this.editor = prefs.edit();
35}
36
37public static synchronized TokenManager getInstance(SharedPreferences prefs){
38 if(INSTANCE == null){
39 INSTANCE = new TokenManager(prefs);
40 }
41 return INSTANCE;
42}
43
44public void saveToken(AccessToken token){
45 editor.putString("ACCESS_TOKEN", token.getAccess_token()).commit();
46 editor.putString("REFRESH_TOKEN", token.getRefresh_token()).commit();
47}
48
49public void deleteToken(){
50 editor.remove("ACCESS_TOKEN").commit();
51 editor.remove("REFRESH_TOKEN").commit();
52}
53
54public AccessToken getToken(){
55 AccessToken token = new AccessToken();
56 token.setAccess_token(prefs.getString("ACCESS_TOKEN", null));
57 token.setRefresh_token(prefs.getString("REFRESH_TOKEN", null));
58 return token;
59}
60
61public static <T> T createServiceWithAuth(Class<T> service, final TokenManager tokenManager) {
62
63 OkHttpClient newClient = client.newBuilder().addInterceptor(new Interceptor() {
64 @Override
65 public Response intercept(Chain chain) throws IOException {
66
67 Request request = chain.request();
68
69 Request.Builder builder = request.newBuilder();
70
71 if (tokenManager.getToken().getAccess_token() != null) {
72 builder.addHeader("Authorization", "Bearer " + tokenManager.getToken().getAccess_token());
73 }
74 request = builder.build();
75 return chain.proceed(request);
76 }
77 }).authenticator(CustomAuthenticator.getInstance(tokenManager)).build();
78
79 Retrofit newRetrofit = retrofit.newBuilder().client(newClient).build();
80 return newRetrofit.create(service);
81
82}
83
84TokenManager tokenManager;
85 Routes service;
86 service = RetrofitBuilder.createServiceWithAuth(Routes.class, tokenManager);
87 tokenManager = TokenManager.getInstance(getSharedPreferences("prefs", MODE_PRIVATE));
88
89if (tokenManager.getToken().getAccess_token() != null) {
90 startActivity(new Intent(LoginActivity.this, MenuDrawerProfileActivity.class));
91 finish();
92 }
93
94tokenManager.saveToken(response.body());
95
96public class AccessToken {
97
98 String token_type;
99 int expires_in;
100 String access_token;
101 String refresh_token;
102}