Yêu cầu thg 11 2, 2018 4:23 CH 228 0 4
  • 228 0 4
0

Xử lý register của viblo

Chia sẻ
  • 228 0 4

Cho mình hỏi viblo xử lý thế nào để lúc đăng ký account bằng mạng xã hội thì redirect về trang register kèm theo data của user. Cái mình muốn hỏi là làm sao để truyền được data đến trang register này (nuxt). Cảm ơn mọi người ạ.

4 CÂU TRẢ LỜI


Đã trả lời thg 11 6, 2018 3:52 SA
Đã được chấp nhận
+1

@johndoe Sau khi bạn làm theo flow OAuth2 và bạn lấy được thông tin người dùng từ bên thứ 3. Bạn lưu thông tin người dùng này vào session rồi redirect về trang register. Ở trang register bạn lấy lại thông tin người dùng vừa nãy từ session ra rồi fill vào form để người dùng tiếp tục quá trình đăng ký. Vì thông tin này chỉ dùng một lần nên bạn dùng kiểu flash session là đủ.

Chia sẻ
Avatar Tam Nguyen @johndoe
thg 11 6, 2018 3:57 SA

Thank bạn. Đây mới câu trả lời mình cần 😃

Đã trả lời thg 11 3, 2018 2:57 SA
+2

Theo mình được biết thì đó là đăng nhập bên từ bên thứ 3 bằng OAuth. Tất cả các mạng xã hội lớn đều support cách này. webflow.png

Từ hướng dẫn của google ở địa chị này: https://developers.google.com/identity/protocols/OAuth2 thì theo sơ đồ bạn gọi đến gọi đến trang của Google, Google sẽ check xem bạn đã login bằng tài khoản Google chưa, nếu chưa sẽ yêu cầu login. Sau khi login, Google sẽ trả bạn một Authorization Code. Bạn dùng Code này gọi lại lên Google để nhận về một access_token. Có access_token này thì bạn có thể sử dụng bất kì api nào Google với tài khoản bạn đã đăng nhập bao gồm cả việc nhận về thông tin người dùng.

Chia sẻ
Avatar Tam Nguyen @johndoe
thg 11 3, 2018 4:22 SA

Cảm ơn câu trả lời của bạn nhưng bạn đang hiểu sai ý mình rồi. Mình muốn hỏi là làm sao để gửi data user (đã get từ social) đến trang /register (nuxt)

thg 11 3, 2018 5:26 SA

@johndoe Như mình đã chỉ thì bạn gửi access_token nhận về thông tin user. Bạn có thể lưu vào vuex rồi ở trang register bạn lấy dữ liệu ra từ store thui.

Avatar Tam Nguyen @johndoe
thg 11 3, 2018 5:35 SA

Việc này xử lý ở phía server, sau đó là redirect, ko dùng vuex đc bạn nhé

Đã trả lời thg 11 3, 2018 4:32 SA
0

Nếu bạn cũng là code Laravel thì có gói Socialite sẽ giúp đỡ bạn điều này. Tra sẽ có rất nhiều bài viết hỗ trợ bạn nhé. À chú ý 1 điều là Facebook có thể đăng nhập bằng sđt nên có vài trường hợp không có email, dẫn đến:

https://stackoverflow.com/questions/38133292/laravel-5-2-socialite-retrieve-null-email

https://laracasts.com/discuss/channels/laravel/socialite-facebook-users-email-is-always-null

Chia sẻ
Đã trả lời thg 11 3, 2018 5:07 SA
0

Cái chủ yếu mình muốn hỏi là làm sao để truyền được data khi redirect đến trang register (dùng nuxtjs) chứ ko phải vấn đề như các bạn bên trên comment.

Chia sẻ
thg 11 3, 2018 2:06 CH

Ai là người k hiểu vấn đề ở đây nhỉ 🤔 Khi login thành công bạn đã có thông tin email, name... rồi, việc của bạn là lưu cái đó lại và fill vào input thôi, bạn sử dụng nuxt thì có thể dùng vuex, đơn giản nữa thì lưu vào localStorage... ???

thg 11 5, 2018 6:43 SA

Theo mình nghĩ có thể là get data từ social lưu vào storage của client, sang đến trang register thì lấy storage này ra hiện lên, bấm register thì mới gửi thông tin này lên server ? 🤔

thg 11 5, 2018 7:24 SA

Mình đoán là social data sẽ được lưu ở sesion của express 🤔, sau đó redirect đến trang register và get data từ session, mình có check viblo thì không thấy lưu data ở store vì lưu ở store thì khi redirect sẽ mất.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí